From: Zhang Xiaoxu Date: Mon, 17 Oct 2022 14:45:25 +0000 (+0800) Subject: cifs: Fix xid leak in cifs_get_file_info_unix() X-Git-Tag: v6.0.16~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d99a4c674811d2a9a48644cfb7b82110def7df0;p=thirdparty%2Fkernel%2Fstable.git cifs: Fix xid leak in cifs_get_file_info_unix() commit 10269f13257d4eb6061d09ccce61666316df9838 upstream. If stardup the symlink target failed, should free the xid, otherwise the xid will be leaked. Fixes: 76894f3e2f71 ("cifs: improve symlink handling for smb2+") Reviewed-by: Paulo Alcantara (SUSE) Signed-off-by: Zhang Xiaoxu Signed-off-by: Steve French Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index c1ea821899f8d..60daa6fffce5c 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c @@ -368,8 +368,10 @@ cifs_get_file_info_unix(struct file *filp) if (cfile->symlink_target) { fattr.cf_symlink_target = kstrdup(cfile->symlink_target, GFP_KERNEL); - if (!fattr.cf_symlink_target) - return -ENOMEM; + if (!fattr.cf_symlink_target) { + rc = -ENOMEM; + goto cifs_gfiunix_out; + } } rc = CIFSSMBUnixQFileInfo(xid, tcon, cfile->fid.netfid, &find_data);