[DCCP] ipv6: Fix opt_skb leak.
authorDavid S. Miller <davem@sunset.davemloft.net>
Sat, 21 Oct 2006 02:44:17 +0000 (19:44 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 22 Oct 2006 02:55:21 +0000 (19:55 -0700)
Based upon a patch from Jesper Juhl.  Try to match the
TCP IPv6 code this was copied from as much as possible,
so that it's easy to see where to add the ipv6 pktoptions
support code.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/ipv6.c

index 91e7b12df13b7fe9753d492847f8dddd87a958a4..c8bf89bfb0883377dba84d594cbc756c4ac62ea8 100644 (file)
@@ -995,6 +995,10 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
        if (sk->sk_state == DCCP_OPEN) { /* Fast path */
                if (dccp_rcv_established(sk, skb, dccp_hdr(skb), skb->len))
                        goto reset;
+               if (opt_skb) {
+                       /* This is where we would goto ipv6_pktoptions. */
+                       __kfree_skb(opt_skb);
+               }
                return 0;
        }
 
@@ -1019,6 +1023,10 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
 
        if (dccp_rcv_state_process(sk, skb, dccp_hdr(skb), skb->len))
                goto reset;
+       if (opt_skb) {
+               /* This is where we would goto ipv6_pktoptions. */
+               __kfree_skb(opt_skb);
+       }
        return 0;
 
 reset: