[lvc-project] [PATCH] usb: storage: isd200: fix sloppy typing in isd200_scsi_to_ata()
Sergey Shtylyov
s.shtylyov at omp.ru
Fri Mar 22 12:49:10 MSK 2024
On 3/22/24 3:57 AM, Alan Stern 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 at omp.ru>
>>
>> ---
>> 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?
The resason is simple: Svace didn't complain about those. I'll fix
them up in v2 if you;re not opposed to this patch...
> Alan Stern
MBR, Sergey
More information about the lvc-project
mailing list