Skip to content

Commit

Permalink
CIFS: Clarify SMB1 code for delete
Browse files Browse the repository at this point in the history
Coverity also complains about the way we calculate the offset
(starting from the address of a 4 byte array within the
header structure rather than from the beginning of the struct
plus 4 bytes) for SMB1 SetFileDisposition (which is used to
unlink a file by setting the delete on close flag).  This
changeset doesn't change the address but makes it slightly
clearer.

Addresses-Coverity: 711524 ("Out of bounds write")
Reviewed-by: Paulo Alcantara (SUSE) <[email protected]>
Signed-off-by: Steve French <[email protected]>
  • Loading branch information
Steve French committed Jul 7, 2021
1 parent e3973ea commit 2a780e8
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion fs/cifs/cifssmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -5763,7 +5763,8 @@ CIFSSMBSetFileDisposition(const unsigned int xid, struct cifs_tcon *tcon,
param_offset = offsetof(struct smb_com_transaction2_sfi_req, Fid) - 4;
offset = param_offset + params;

data_offset = (char *) (&pSMB->hdr.Protocol) + offset;
/* SMB offsets are from the beginning of SMB which is 4 bytes in, after RFC1001 field */
data_offset = (char *)(pSMB) + offset + 4;

count = 1;
pSMB->MaxParameterCount = cpu_to_le16(2);
Expand Down

0 comments on commit 2a780e8

Please sign in to comment.