Hi All

I am trying to understand if it is a good idea to have cloned skbs
reside on a frag_list?

I've ran into a situation with SCTP, where it is possible to create
infinite recursion loops by having cloned skbs reside on a frag_list.
We end up in a situation where have two clones skb1 and skb2 that are
clones of the same original skb.  Then we try adding skb2 to the
frag_list of skb1.  Since both skb1 and skb2 share the skb_shared_info
structure, skb2's frag_list now points to skb2 creating a loop.

This situation also appears to cause a memory leak where skb2 and the
actual data are not freed, because calling kfree_skb(skb1) should really
free the frag_list, but we can't do that because the skb on the frag
list holds the dataref on the same data.

Can anyone say that putting clones on the frag_list is a BAD THING (tm)
and shouldn't be done?  Or is there a way around it?

Thanks you
-vlad

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to