]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ipv6/addrlabel: fix ip6addrlbl_get()
authorAndrey Ryabinin <aryabinin@virtuozzo.com>
Mon, 21 Dec 2015 09:54:45 +0000 (12:54 +0300)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:43:18 +0000 (15:43 -0700)
commit16b3506d1269f19de1299c83978fb0209da45571
treed1b83a22f4b807d646fa0a4d2f3a7f3a7abbbba2
parent9394945e1801493bd6d984da8809badf1e956eb4
ipv6/addrlabel: fix ip6addrlbl_get()

Orabug: 23330540

[ Upstream commit e459dfeeb64008b2d23bdf600f03b3605dbb8152 ]

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: 2a8cc6c89039 ("[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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 8a39e24931d119c0418721923281d2b496275ad3)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
net/ipv6/addrlabel.c