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

Re: [Xen-devel] [PATCH v3 39/52] xen: check parameter validity when parsing command line



On 22/08/17 13:24, Jan Beulich wrote:
>>>> On 16.08.17 at 14:52, <jgross@xxxxxxxx> wrote:
>>  static void __init _cmdline_parse(const char *cmdline)
>>  {
>>      char opt[128], *optval, *optkey, *q;
>> -    const char *p = cmdline;
>> +    const char *p = cmdline, *s, *key;
>>      const struct kernel_param *param;
>> -    int bool_assert;
>> +    int bool_assert, rctmp, rc;
>> +    bool found;
> 
> If you touch this anyway, I think bool_assert should become bool too.
> And perhaps worthwhile shrinking the scope of at least some of the
> variables you add/touch.

Okay.

> 
>> @@ -131,13 +157,21 @@ static void __init _cmdline_parse(const char *cmdline)
>>                      safe_strcpy(opt, "no");
>>                      optval = opt;
>>                  }
>> -                ((void (*)(const char *))param->var)(optval);
>> +                rctmp = param->par.func(optval);
>>                  break;
>>              default:
>>                  BUG();
>>                  break;
>>              }
>> +
>> +            if ( !rc )
>> +                rc = rctmp;
>>          }
>> +
>> +        if ( rc )
>> +            printk("parameter \"%s\" has invalid value \"%s\"!\n", key, 
>> optval);
> 
> Since a few different rc values are possible by now, it's perhaps
> worth also logging rc.
> 
>> @@ -176,7 +210,8 @@ int __init parse_bool(const char *s)
>>           !strcmp("on", s) ||
>>           !strcmp("true", s) ||
>>           !strcmp("enable", s) ||
>> -         !strcmp("1", s) )
>> +         !strcmp("1", s) ||
>> +         !*s )
>>          return 1;
> 
> Careful with this: Taking the "iommu=" example that I've commented
> on in the other patch already, much depends on what you mean to
> do about the problem there: "iommu=,..." should not end up
> meaning "iommu=on,...".

It won't. *s will be ',' in this case.


Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.