]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6/addrlabel: fix ip6addrlbl_get()
authorAndrey Ryabinin <aryabinin@virtuozzo.com>
Mon, 21 Dec 2015 09:54:45 +0000 (12:54 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 22 Dec 2015 20:57:54 +0000 (15:57 -0500)
commit2746a93017252652c1df9fc6eb9e3f0d8cee4ad2
treed0f1c4b878c279acc8f9b77effa174145fbed999
parent1839baa8290f531297019309c99baff59d88d1c0
ipv6/addrlabel: fix ip6addrlbl_get()

ip6addrlbl_get() has never worked. If ip6addrlbl_hold() succeeded,
ip6addrlbl_get() will exit with '-ESRCH'. If ip6addrlbl_hold() failed,
ip6addrlbl_get() will use about to be free ip6addrlbl_entry pointer.

Fix this by inverting ip6addrlbl_hold() check.

Fixes: 50b1de658254 ("[IPV6] ADDRCONF: Support RFC3484 configurable address selection policy table.")
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Reviewed-by: Cong Wang <cwang@twopensource.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrlabel.c