NFSD: fix corruption in notifier registration
authorVasily Averin <vvs@virtuozzo.com>
Wed, 21 Sep 2016 12:33:05 +0000 (15:33 +0300)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 26 Sep 2016 18:17:45 +0000 (14:17 -0400)
commit1eca45f8a840987d0df355e0176921653e4f7ec2
tree7aad7b543bc8b14607968c78429478375dde02ce
parent25d55296dd3eac23adb2ae46b67b65bf73b22fb2
NFSD: fix corruption in notifier registration

By design notifier can be registered once only, however nfsd registers
the same inetaddr notifiers per net-namespace.  When this happen it
corrupts list of notifiers, as result some notifiers can be not called
on proper event, traverse on list can be cycled forever, and second
unregister can access already freed memory.

Cc: stable@vger.kernel.org
fixes: 36684996 ("nfsd: Register callbacks on the inetaddr_chain and inet6addr_chain")
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfssvc.c