[IPV6] RAW: Don't release unlocked sock.

When user builds IPv6 header and send it through raw socket, kernel
tries to release unlocked sock. (Kernel log shows
"BUG: bad unlock balance detected" with enabled debug option.)

The lock is held only for non-hdrincl sock in this function
then this patch fix to do nothing about lock for hdrincl one.

Signed-off-by: Masahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Masahide NAKAMURA 2006-12-05 13:48:27 -08:00 committed by David S. Miller
parent 9a217a1c7e
commit 4e33fa14fa

View file

@ -854,7 +854,8 @@ back_from_confirm:
}
done:
dst_release(dst);
release_sock(sk);
if (!inet->hdrincl)
release_sock(sk);
out:
fl6_sock_release(flowlabel);
return err<0?err:len;