diff options
author | Khaled ROMDHANI <khaledromdhani216@gmail.com> | 2021-05-04 17:38:55 +0200 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2021-05-04 18:53:15 +0200 |
commit | bae4c0c1c2d576d32e37925ef972a5d45f34e36d (patch) | |
tree | 8f7c59f39cbee8d7758280737ac26eed88c4b2d8 /fs/cifs | |
parent | Cifs: Fix kernel oops caused by deferred close for files. (diff) | |
download | linux-bae4c0c1c2d576d32e37925ef972a5d45f34e36d.tar.xz linux-bae4c0c1c2d576d32e37925ef972a5d45f34e36d.zip |
fs/cifs: Fix resource leak
The -EIO error return path is leaking memory allocated
to page. Fix this by moving the allocation block after
the check of cifs_forced_shutdown.
Addresses-Coverity: ("Resource leak")
Fixes: 087f757b0129 ("cifs: add shutdown support")
Signed-off-by: Khaled ROMDHANI <khaledromdhani216@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/link.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/cifs/link.c b/fs/cifs/link.c index 1cbe7ec73728..970fcf2adb08 100644 --- a/fs/cifs/link.c +++ b/fs/cifs/link.c @@ -683,12 +683,16 @@ cifs_symlink(struct user_namespace *mnt_userns, struct inode *inode, struct tcon_link *tlink; struct cifs_tcon *pTcon; const char *full_path; - void *page = alloc_dentry_path(); + void *page; struct inode *newinode = NULL; if (unlikely(cifs_forced_shutdown(cifs_sb))) return -EIO; + page = alloc_dentry_path(); + if (!page) + return -ENOMEM; + xid = get_xid(); tlink = cifs_sb_tlink(cifs_sb); |