ipv6: Fix duplicate initialization of rawv6_prot.destroy
authorDavid S. Miller <davem@davemloft.net>
Thu, 12 Jun 2008 21:47:58 +0000 (14:47 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Jun 2008 23:34:34 +0000 (16:34 -0700)
commitf23d60de719e639690b2dc5c2d0e4243ff614b7a
tree39e8083b98c476978ce45f0a4fc4de111554f786
parent24e3fcefb9cc61acce59ed54c00c4e4c32537de7
ipv6: Fix duplicate initialization of rawv6_prot.destroy

In changeset 22dd485022f3d0b162ceb5e67d85de7c3806aa20
("raw: Raw socket leak.") code was added so that we
flush pending frames on raw sockets to avoid leaks.

The ipv4 part was fine, but the ipv6 part was not
done correctly.  Unlike the ipv4 side, the ipv6 code
already has a .destroy method for rawv6_prot.

So now there were two assignments to this member, and
what the compiler does is use the last one, effectively
making the ipv6 parts of that changeset a NOP.

Fix this by removing the:

.destroy    = inet6_destroy_sock,

line, and adding an inet6_destroy_sock() call to the
end of raw6_destroy().

Noticed by Al Viro.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
net/ipv6/raw.c