mirror of
https://github.com/torvalds/linux.git
synced 2026-10-13 05:41:02 +02:00
smb: client: preserve create-context parsing errors
smb2_compound_op() saves the result from compound_send_recv() in
tmp_rc. For SMB2_OP_OPEN_QUERY it then parses the CREATE contexts, but
the final assignment of rc from tmp_rc discards a parsing error. A
malformed create-context response can therefore be reported as
successful to smb2_query_path_info().
Keep a create-context parsing error in tmp_rc so it survives per-command
response processing and is returned to the caller.
Fixes: b07687edee ("cifs: Improve SMB2+ stat() to work also without FILE_READ_ATTRIBUTES")
Cc: stable@vger.kernel.org
Reported-by: Vega <vega@nebusec.ai>
Assisted-by: LLM
Co-developed-by: Luxing Yin <root@tr0jan.top>
Signed-off-by: Luxing Yin <root@tr0jan.top>
Signed-off-by: Zihan Xi <zihanx@nebusec.ai>
Tested-by: Frank Sorenson <sorenson@redhat.com>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
This commit is contained in:
parent
6c5c547f03
commit
2e828035d5
|
|
@ -598,8 +598,10 @@ static int smb2_compound_op(const unsigned int xid, struct cifs_tcon *tcon,
|
|||
/* smb2_parse_contexts() fills idata->fi.IndexNumber */
|
||||
rc = smb2_parse_contexts(server, &rsp_iov[0], &oparms->fid->epoch,
|
||||
oparms->fid->lease_key, &oplock, &idata->fi, NULL);
|
||||
if (rc)
|
||||
if (rc) {
|
||||
cifs_dbg(VFS, "rc: %d parsing context of compound op\n", rc);
|
||||
tmp_rc = rc;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < num_cmds; i++) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user