diff --git a/[refs] b/[refs] index 3a0b7ee4fda7..98dc18839843 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fda0fd6c5b722cc48e904e0daafedca275d332af +refs/heads/master: ffa29347dfbc158d1f47f5925324a6f5713659c1 diff --git a/trunk/net/dccp/output.c b/trunk/net/dccp/output.c index 946ec2db75de..7006549f7050 100644 --- a/trunk/net/dccp/output.c +++ b/trunk/net/dccp/output.c @@ -241,7 +241,8 @@ int dccp_write_xmit(struct sock *sk, struct sk_buff *skb, long *timeo) err = dccp_transmit_skb(sk, skb); ccid_hc_tx_packet_sent(dp->dccps_hc_tx_ccid, sk, 0, len); - } + } else + kfree_skb(skb); return err; } diff --git a/trunk/net/dccp/proto.c b/trunk/net/dccp/proto.c index a1cfd0e9e3bc..a021c3422f67 100644 --- a/trunk/net/dccp/proto.c +++ b/trunk/net/dccp/proto.c @@ -402,8 +402,6 @@ int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, * This bug was _quickly_ found & fixed by just looking at an OSTRA * generated callgraph 8) -acme */ - if (rc != 0) - goto out_discard; out_release: release_sock(sk); return rc ? : len;