[IPV6]: Fix unbalanced socket reference with MSG_CONFIRM.
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Fri, 14 Sep 2007 23:45:40 +0000 (16:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Sep 2007 23:45:40 +0000 (16:45 -0700)
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/raw.c

index e27383d855dedfeffc1855ec906ea2522c8344e2..77167afa3455a162fae611ce7fbbdeec764d949a 100644 (file)
@@ -882,11 +882,10 @@ back_from_confirm:
                        ip6_flush_pending_frames(sk);
                else if (!(msg->msg_flags & MSG_MORE))
                        err = rawv6_push_pending_frames(sk, &fl, rp);
+               release_sock(sk);
        }
 done:
        dst_release(dst);
-       if (!inet->hdrincl)
-               release_sock(sk);
 out:
        fl6_sock_release(flowlabel);
        return err<0?err:len;