Re: [PATCH] usb: storage: isd200: fix sloppy typing in isd200_scsi_to_ata()

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

 



On Thu, Mar 21, 2024 at 11:43:37PM +0300, Sergey Shtylyov wrote:
> When isd200_scsi_to_ata() emulates the SCSI READ CAPACITY command, the
> capacity local variable is needlessly typed as *unsigned long* -- which
> is 32-bit type on the 32-bit arches and 64-bit type on the 64-bit arches;
> this variable's value should always fit into 32 bits for both the ATA and
> the SCSI capacity data...
> 
> While at it, arrange the local variable declarations in the reverse Xmas
> tree order...
> 
> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
> analysis tool.
> 
> Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
> 
> ---
>  drivers/usb/storage/isd200.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Index: usb/drivers/usb/storage/isd200.c
> ===================================================================
> --- usb.orig/drivers/usb/storage/isd200.c
> +++ usb/drivers/usb/storage/isd200.c
> @@ -1283,8 +1283,8 @@ static int isd200_scsi_to_ata(struct scs
>  
>  	case READ_CAPACITY:
>  	{
> -		unsigned long capacity;
>  		struct read_capacity_data readCapacityData;
> +		u32 capacity;

This is a bit peculiar.  Why bother to change the type of the capacity 
variable without also changing the types of lba and blockCount at the 
start of the routine?

Alan Stern




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux