Commit fda0fd6c authored by Herbert Xu's avatar Herbert Xu Committed by Arnaldo Carvalho de Melo

[DCCP]: Use skb_set_owner_w in dccp_transmit_skb when skb->sk is NULL

David S. Miller <davem@davemloft.net> wrote:
> One thing you can probably do for this bug is to mark data packets
> explicitly somehow, perhaps in the SKB control block DCCP already
> uses for other data.  Put some boolean in there, set it true for
> data packets.  Then change the test in dccp_transmit_skb() as
> appropriate to test the boolean flag instead of "skb_cloned(skb)".

I agree.  In fact we already have that flag, it's called skb->sk.
So here is patch to test that instead of skb_cloned().
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Acked-by: default avatarIan McDonald <imcdnzl@gmail.com>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
parent ac9b9c66
...@@ -62,10 +62,8 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb) ...@@ -62,10 +62,8 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
skb->h.raw = skb_push(skb, dccp_header_size); skb->h.raw = skb_push(skb, dccp_header_size);
dh = dccp_hdr(skb); dh = dccp_hdr(skb);
/*
* Data packets are not cloned as they are never retransmitted if (!skb->sk)
*/
if (skb_cloned(skb))
skb_set_owner_w(skb, sk); skb_set_owner_w(skb, sk);
/* Build DCCP header and checksum it. */ /* Build DCCP header and checksum it. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment