[Spice-devel] [PATCH usbredir] usbredirserver: reject empty vendor id in cmd line

Chen Hanxiao chen_han_xiao at 126.com
Tue Nov 28 10:45:41 UTC 2017


At 2017-11-28 18:27:54, "Frediano Ziglio" <fziglio at redhat.com> wrote:
>> 
>> From: Chen Hanxiao <chenhanxiao at gmail.com>
>> 
>> Vendor ID 0000 is not a valid ID [1]
>> But we could pass it from cmd:
>>   usbredirserver :abcd
>>    or
>>   usbredirserver 0000:abcd
>> 
>> Which will pass a 0000 vendor id to usbredirserver.
>> 
>> This patch will check this senario.
>> 
>> [1]: http://www.linux-usb.org/usb.ids
>> 
>> Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
>> ---
>>  usbredirserver/usbredirserver.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/usbredirserver/usbredirserver.c
>> b/usbredirserver/usbredirserver.c
>> index 5a4adc5..17226a5 100644
>> --- a/usbredirserver/usbredirserver.c
>> +++ b/usbredirserver/usbredirserver.c
>> @@ -259,7 +259,7 @@ int main(int argc, char *argv[])
>>              invalid_usb_device_id(argv[optind], argv[0]);
>>          }
>>          usbvendor = strtol(argv[optind], &endptr, 16);
>> -        if (*endptr != ':') {
>> +        if (*endptr != ':' || usbvendor == 0) {
>>              invalid_usb_device_id(argv[optind], argv[0]);
>>          }
>>          usbproduct = strtol(delim + 1, &endptr, 16);
>
>Maybe you want something like
>
>    if (*endptr != ':' || usbvendor <= 0 || usbvendor > 0xffff) {
>
>similar for usbproduct.

We don't need to check for usbvendor <0, for we don't have long options for
usbvendor:usbproduct.
So I don't know how to pass a negative value to it.


The check for <= 0xffff looks reasonable.

Regards,
- Chen

>
>Frediano


More information about the Spice-devel mailing list