Commit 10269f13 authored by Zhang Xiaoxu's avatar Zhang Xiaoxu Committed by Steve French
Browse files

cifs: Fix xid leak in cifs_get_file_info_unix()



If stardup the symlink target failed, should free the xid,
otherwise the xid will be leaked.

Fixes: 76894f3e ("cifs: improve symlink handling for smb2+")
Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: default avatarZhang Xiaoxu <zhangxiaoxu5@huawei.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent e909d054
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);