[bug report] scsi: sg: fix SG_DXFER_FROM_DEV transfers

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

 



Hello Johannes Thumshirn,

The patch 68c59fcea1f2: "scsi: sg: fix SG_DXFER_FROM_DEV transfers"
from Jul 7, 2017, leads to the following static checker warning:

	drivers/scsi/sg.c:762 sg_is_valid_dxfer()
	warn: unsigned 'hp->dxfer_len' is never less than zero.

drivers/scsi/sg.c
   754  static bool sg_is_valid_dxfer(sg_io_hdr_t *hp)
   755  {
   756          switch (hp->dxfer_direction) {
   757          case SG_DXFER_NONE:
   758                  if (hp->dxferp || hp->dxfer_len > 0)
   759                          return false;
   760                  return true;
   761          case SG_DXFER_FROM_DEV:
   762                  if (hp->dxfer_len < 0)
                            ^^^^^^^^^^^^^^^^^
Not possible.

   763                          return false;
   764                  return true;
   765          case SG_DXFER_TO_DEV:
   766          case SG_DXFER_TO_FROM_DEV:
   767                  if (!hp->dxferp || hp->dxfer_len == 0)
   768                          return false;
   769                  return true;
   770          case SG_DXFER_UNKNOWN:
   771                  if ((!hp->dxferp && hp->dxfer_len) ||
   772                      (hp->dxferp && hp->dxfer_len == 0))
   773                          return false;
   774                  return true;
   775          default:
   776                  return false;
   777          }
   778  }

Btw, I was looking up the type of hp->dxfer_len and I noticed that the
documentation for hp->resid is wrong.  It says:

	int resid;                  /* [o] dxfer_len - actual_transferred */

My guess is that resid stands for Response ID but I'm not positive.

regards,
dan carpenter



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux