|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 39/52] xen: check parameter validity when parsing command line
>>> On 14.08.17 at 15:31, <jgross@xxxxxxxx> wrote:
> On 14/08/17 14:46, Jan Beulich wrote:
>>>>> On 14.08.17 at 09:08, <jgross@xxxxxxxx> wrote:
>>> @@ -97,8 +102,9 @@ static void __init _cmdline_parse(const char *cmdline)
>>> !strncmp(param->name, opt, q + 1 - opt) )
>>> {
>>> optval[-1] = '=';
>>> - ((void (*)(const char *))param->var)(q);
>>> + rc = ((int (*)(const char *))param->var)(q);
>>
>> Neither here nor in the earlier "let custom parameter parsing
>> routines return errno" nor in the overview you mention why this
>> is safe - it is not a given that caller and callee disagreeing on
>> return type is going to work. Just think of functions returning
>> aggregates or (on ix86) ones returning floating point values in
>> st(0).
>
> I thought about using a union in struct kernel_param and removing
> above type cast. This would require modifying the initialization of
> the kernel_param struct via the *_param() macros, though.
>
> The other possibility would be using __builtin_types_compatible_p()
> to check the function to be of proper type.
>
> What would you like best?
I'd prefer the union approach; I was actually surprised to see
we still only have a void * there.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |