Re: [PATCH] sg3_utils: Strip spaces at the end of various fields in INQUIRY response

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

 



Sorry, should retract "A change to sysfs attributes such that it now
includes spaces caused
this problem.".

Regards,

Shirish

On Thu, Apr 3, 2014 at 1:50 PM, Douglas Gilbert <dgilbert@xxxxxxxxxxxx> wrote:
> Hi,
> scsiinfo:
>>>> Eric Youngdale ** - 11/1/93.  Version 1.0.
>
> Version 1.81 was ported to sginfo in 1998 and placed in the
> sg_utils package. For more than 10 years I have been trying
> to discourage people from using it. It contains next to no
> modern VPD or mode pages and many of the standard INQUIRY
> response fields it lists are now obsolete.
>
> Curious about what sginfo and sysfs have in common. Oh well,
> looks like I have my first patch for sg3_utils version 1.39 .
>
> Doug Gilbert
>
> ** Did Eric wear bow ties?
>
>
> On 14-04-03 01:07 PM, shirishpargaonkar@xxxxxxxxx wrote:
>>
>> From: Shirish Pargaonkar <spargaonkar@xxxxxxxx>
>>
>> sginfo <device> prints out various fields such as Vendor and Product in
>> INQUIRY response with spaces (0x20) characters.
>> This can confuse scripts some users have.
>>
>> A change to sysfs attributes such that it now includes spaces caused
>> this problem.
>>
>> Strip out those trailing spaces (if any).
>>
>>
>> Signed-off-by: Shirish Pargaonkar <spargaonkar@xxxxxxxx>
>> ---
>> Index: src/sginfo.c
>> ===================================================================
>> --- src.orig/sginfo.c   2014-04-02 22:36:13.779692431 -0500
>> +++ src/sginfo.c        2014-04-02 22:51:36.028265615 -0500
>> @@ -155,6 +155,7 @@
>>   #define MAX_BUFFER_SIZE MAX_RESP10_SIZE
>>
>>   #define INQUIRY_RESP_INITIAL_LEN 36
>> +#define MAX_INQFIELD_LEN 17
>>
>>   #define MAX_HEADS 127
>>   #define HEAD_SORT_TOKEN 0x55
>> @@ -3139,11 +3140,23 @@
>>       return status;
>>   }
>>
>> +static void
>> +inqfieldname(unsigned char *deststr, const unsigned char *srcbuf, int
>> maxlen)
>> +{
>> +       int i;
>> +
>> +       memset(deststr, '\0', MAX_INQFIELD_LEN);
>> +       for (i = maxlen - 1; i >= 0 && isspace(srcbuf[i]); --i)
>> +               ;
>> +       memcpy(deststr, srcbuf, i + 1);
>> +}
>> +
>>   static int
>>   do_inquiry(int * peri_type, int * resp_byte6, int inquiry_verbosity)
>>   {
>>       int status;
>>       unsigned char cmd[6];
>> +    unsigned char fieldname[MAX_INQFIELD_LEN];
>>       unsigned char *pagestart;
>>       struct scsi_cmnd_io sci;
>>
>> @@ -3214,14 +3227,18 @@
>>       }
>>       if (x_interface)
>>           printf("\n");
>> -    printf("%s%.8s\n", (!x_interface ? "Vendor:                    " :
>> ""),
>> -           pagestart + 8);
>> -
>> -    printf("%s%.16s\n", (!x_interface ? "Product:                   " :
>> ""),
>> -           pagestart + 16);
>>
>> -    printf("%s%.4s\n", (!x_interface ? "Revision level:            " :
>> ""),
>> -           pagestart + 32);
>> +    inqfieldname(fieldname, pagestart + 8, 8);
>> +    printf("%s%s\n", (!x_interface ? "Vendor:                    " : ""),
>> +           fieldname);
>> +
>> +    inqfieldname(fieldname, pagestart + 16, 16);
>> +    printf("%s%s\n", (!x_interface ? "Product:                   " : ""),
>> +           fieldname);
>> +
>> +    inqfieldname(fieldname, pagestart + 32, 4);
>> +    printf("%s%s\n", (!x_interface ? "Revision level:            " : ""),
>> +           fieldname);
>>
>>       printf("\n");
>>       return status;
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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