]> www.infradead.org Git - users/jedix/linux-maple.git/commit
cifs: fix dentry refcount leak when opening a FIFO on lookup
authorJeff Layton <jlayton@redhat.com>
Thu, 23 Feb 2012 14:37:45 +0000 (09:37 -0500)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Thu, 19 Apr 2012 22:37:45 +0000 (15:37 -0700)
commita2ba6db3f1c226320b6cbc2b825b6ceb4f2a4dc2
tree01a1132722d6e354de142f30d7385db197f64762
parent0ac030a7963c927495bc911eb6ae0413f694df85
cifs: fix dentry refcount leak when opening a FIFO on lookup

commit 5bccda0ebc7c0331b81ac47d39e4b920b198b2cd upstream.

The cifs code will attempt to open files on lookup under certain
circumstances. What happens though if we find that the file we opened
was actually a FIFO or other special file?

Currently, the open filehandle just ends up being leaked leading to
a dentry refcount mismatch and oops on umount. Fix this by having the
code close the filehandle on the server if it turns out not to be a
regular file. While we're at it, change this spaghetti if statement
into a switch too.
This fixes: CVE-2012-1090

Reported-by: CAI Qian <caiqian@redhat.com>
Tested-by: CAI Qian <caiqian@redhat.com>
Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/cifs/dir.c