cifs: Fix smb2_set_path_size()
commit 211baef0eabf4169ce4f73ebd917749d1a7edd74 upstream. If cifs_get_writable_path() finds a writable file, smb2_compound_op() must use that file's FID and not the COMPOUND_FID. Cc: stable@vger.kernel.org Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Paulo Alcantara (SUSE) <pc@manguebit.com> Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
ec663c410c
commit
7b18dea697
@@ -236,15 +236,32 @@ smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
|
|||||||
size[0] = 8; /* sizeof __le64 */
|
size[0] = 8; /* sizeof __le64 */
|
||||||
data[0] = ptr;
|
data[0] = ptr;
|
||||||
|
|
||||||
rc = SMB2_set_info_init(tcon, server,
|
if (cfile) {
|
||||||
&rqst[num_rqst], COMPOUND_FID,
|
rc = SMB2_set_info_init(tcon, server,
|
||||||
COMPOUND_FID, current->tgid,
|
&rqst[num_rqst],
|
||||||
FILE_END_OF_FILE_INFORMATION,
|
cfile->fid.persistent_fid,
|
||||||
SMB2_O_INFO_FILE, 0, data, size);
|
cfile->fid.volatile_fid,
|
||||||
|
current->tgid,
|
||||||
|
FILE_END_OF_FILE_INFORMATION,
|
||||||
|
SMB2_O_INFO_FILE, 0,
|
||||||
|
data, size);
|
||||||
|
} else {
|
||||||
|
rc = SMB2_set_info_init(tcon, server,
|
||||||
|
&rqst[num_rqst],
|
||||||
|
COMPOUND_FID,
|
||||||
|
COMPOUND_FID,
|
||||||
|
current->tgid,
|
||||||
|
FILE_END_OF_FILE_INFORMATION,
|
||||||
|
SMB2_O_INFO_FILE, 0,
|
||||||
|
data, size);
|
||||||
|
if (!rc) {
|
||||||
|
smb2_set_next_command(tcon, &rqst[num_rqst]);
|
||||||
|
smb2_set_related(&rqst[num_rqst]);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (rc)
|
if (rc)
|
||||||
goto finished;
|
goto finished;
|
||||||
smb2_set_next_command(tcon, &rqst[num_rqst]);
|
num_rqst++;
|
||||||
smb2_set_related(&rqst[num_rqst++]);
|
|
||||||
trace_smb3_set_eof_enter(xid, ses->Suid, tcon->tid, full_path);
|
trace_smb3_set_eof_enter(xid, ses->Suid, tcon->tid, full_path);
|
||||||
break;
|
break;
|
||||||
case SMB2_OP_SET_INFO:
|
case SMB2_OP_SET_INFO:
|
||||||
|
Reference in New Issue
Block a user