fix kcm_clone()
authorAl Viro <viro@ZenIV.linux.org.uk>
Tue, 5 Dec 2017 23:27:57 +0000 (23:27 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 17 Dec 2017 14:07:59 +0000 (15:07 +0100)
commite587b76e655441b7f3239dfb999c444c8573820c
treeb252a87d76c3374a0704c2d3132c54d1e4ae1e62
parentfc2f802193ccecf710ab608712b5b102dd9efc75
fix kcm_clone()

commit a5739435b5a3b8c449f8844ecd71a3b1e89f0a33 upstream.

1) it's fput() or sock_release(), not both
2) don't do fd_install() until the last failure exit.
3) not a bug per se, but... don't attach socket to struct file
   until it's set up.

Take reserving descriptor into the caller, move fd_install() to the
caller, sanitize failure exits and calling conventions.

Acked-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/kcm/kcmsock.c