-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
same skb is added to the msg's skb_list multiple times in ss_tcp_process_skb() #31
Comments
Eventually, This sort of design might be questionable, but that's a totally different topic. The bug does not exist as described. |
This is poor design of put_skb_to_msg(), must be fixed. There is no sense to call the hook many times just to see that the skb is already in the list. |
It appears that the fix is not complete. When the message is postponed - and that the usual course of action as an skb is processed in chunks - |
Ok, please do the fix. |
The rest of this issue is moved to #80. |
The
ss_tcp_process_skb()/ss_tcp_process_proto_skb()
iterate oversk_buff
's fragments and make several upcalls for each fragment.There are two problems:
put_skb_to_msg()
is called for each fragment. The function enqueues the givenskb
to the msg'sskb_list
, so the sameskb
is actually added to the list multiple times (for each fragment of theskb
).SS_POSTPONE
, thepostpone_skb()
is called afterput_skb_to_msg()
. Both functions add theskb
to the msg'sskb_list
, so the sameskb
is added twice when the message is postponed.The text was updated successfully, but these errors were encountered: