aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-08-24 00:50:21 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 19:04:38 -0400
commit20472af986569b0615bd77f0fd7ca9e3d33e9895 (patch)
tree1f2fe837d53cc894c81710623bb1fd99f3b52a8d
parent7ad07e7cf343181002c10c39d3f57a88e4903d4f (diff)
[DCCP]: Fix skb leak in dccp_sendmsg
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/dccp/proto.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/dccp/proto.c b/net/dccp/proto.c
index a3f8a8095f81..2b6db18e607f 100644
--- a/net/dccp/proto.c
+++ b/net/dccp/proto.c
@@ -206,6 +206,18 @@ int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
206 goto out_discard; 206 goto out_discard;
207 207
208 rc = dccp_write_xmit(sk, skb, len); 208 rc = dccp_write_xmit(sk, skb, len);
209 /*
210 * XXX we don't use sk_write_queue, so just discard the packet.
211 * Current plan however is to _use_ sk_write_queue with
212 * an algorith similar to tcp_sendmsg, where the main difference
213 * is that in DCCP we have to respect packet boundaries, so
214 * no coalescing of skbs.
215 *
216 * This bug was _quickly_ found & fixed by just looking at an OSTRA
217 * generated callgraph 8) -acme
218 */
219 if (rc != 0)
220 goto out_discard;
209out_release: 221out_release:
210 release_sock(sk); 222 release_sock(sk);
211 return rc ? : len; 223 return rc ? : len;