[bug report] smb3: pass mode bits into create calls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Steve French,

The patch c3ca78e21744: "smb3: pass mode bits into create calls" from
Sep 25, 2019, leads to the following static checker warning:

	fs/cifs/smb2pdu.c:754 add_posix_context()
	warn: impossible condition '(mode == -1) => (0-u16max == (-1))'

fs/cifs/smb2pdu.c
   747  static int
   748  add_posix_context(struct kvec *iov, unsigned int *num_iovec, umode_t mode)
                                                                     ^^^^^^^
This is unsigned short.

   749  {
   750          struct smb2_create_req *req = iov[0].iov_base;
   751          unsigned int num = *num_iovec;
   752  
   753          iov[num].iov_base = create_posix_buf(mode);
   754          if (mode == -1)
                    ^^^^^^^^^^
So this debug code will never trigger.

   755                  cifs_dbg(VFS, "illegal mode\n"); /* BB REMOVEME */
   756          if (iov[num].iov_base == NULL)
   757                  return -ENOMEM;
   758          iov[num].iov_len = sizeof(struct create_posix);
   759          if (!req->CreateContextsOffset)
   760                  req->CreateContextsOffset = cpu_to_le32(
   761                                  sizeof(struct smb2_create_req) +
   762                                  iov[num - 1].iov_len);
   763          le32_add_cpu(&req->CreateContextsLength, sizeof(struct create_posix));
   764          *num_iovec = num + 1;
   765          return 0;
   766  }

regards,
dan carpenter



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux