[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 |