diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-08-24 00:50:21 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-08-29 19:04:38 -0400 |
commit | 20472af986569b0615bd77f0fd7ca9e3d33e9895 (patch) | |
tree | 1f2fe837d53cc894c81710623bb1fd99f3b52a8d /net/dccp/proto.c | |
parent | 7ad07e7cf343181002c10c39d3f57a88e4903d4f (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>
Diffstat (limited to 'net/dccp/proto.c')
-rw-r--r-- | net/dccp/proto.c | 12 |
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; | ||
209 | out_release: | 221 | out_release: |
210 | release_sock(sk); | 222 | release_sock(sk); |
211 | return rc ? : len; | 223 | return rc ? : len; |