projects
/
platform
/
kernel
/
linux-rpi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
22832ac
)
9p: fix fid refcount leak in v9fs_vfs_get_link
author
Dominique Martinet
<asmadeus@codewreck.org>
Sun, 12 Jun 2022 08:14:55 +0000
(17:14 +0900)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Wed, 29 Jun 2022 07:03:19 +0000
(09:03 +0200)
commit
e5690f263208c5abce7451370b7786eb25b405eb
upstream.
we check for protocol version later than required, after a fid has
been obtained. Just move the version check earlier.
Link:
https://lkml.kernel.org/r/20220612085330.1451496-3-asmadeus@codewreck.org
Fixes:
6636b6dcc3db
("9p: add refcount to p9_fid struct")
Cc: stable@vger.kernel.org
Reviewed-by: Tyler Hicks <tyhicks@linux.microsoft.com>
Reviewed-by: Christian Schoenebeck <linux_oss@crudebyte.com>
Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/9p/vfs_inode.c
patch
|
blob
|
history
diff --git
a/fs/9p/vfs_inode.c
b/fs/9p/vfs_inode.c
index
08f48b7
..
15d9492
100644
(file)
--- a/
fs/9p/vfs_inode.c
+++ b/
fs/9p/vfs_inode.c
@@
-1228,15
+1228,15
@@
static const char *v9fs_vfs_get_link(struct dentry *dentry,
return ERR_PTR(-ECHILD);
v9ses = v9fs_dentry2v9ses(dentry);
- fid = v9fs_fid_lookup(dentry);
+ if (!v9fs_proto_dotu(v9ses))
+ return ERR_PTR(-EBADF);
+
p9_debug(P9_DEBUG_VFS, "%pd\n", dentry);
+ fid = v9fs_fid_lookup(dentry);
if (IS_ERR(fid))
return ERR_CAST(fid);
- if (!v9fs_proto_dotu(v9ses))
- return ERR_PTR(-EBADF);
-
st = p9_client_stat(fid);
p9_client_clunk(fid);
if (IS_ERR(st))