|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |