Daniel Thompson <daniel.thomp...@linaro.org> writes:
> Currently if the user passes an invalid value on the kernel command line
> then the kernel will crash during argument parsing. On most systems this
> is very hard to debug because the console hasn't been initialized yet.

Good catch, applied!

Thanks,
Rusty.

>
> This is a regression due to commit 51e158c12aca ("param: hand arguments
> after -- straight to init") which, in response to the systemd debug
> controversy, made it possible to explicitly pass arguments to init. To
> achieve this parse_args() was extended from simply returning an error
> code to returning a pointer. Regretably the new init args logic does not
> perform a proper validity check on the pointer resulting in a crash.
>
> This patch fixes the validity check. Should the check fail then no arguments
> will be passed to init. This is reasonable and matches how the kernel treats
> its own arguments (i.e. no error recovery).
>
> Signed-off-by: Daniel Thompson <daniel.thomp...@linaro.org>
> Cc: sta...@vger.kernel.org
> ---
>  init/main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/init/main.c b/init/main.c
> index 800a0da..321d0ce 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -544,7 +544,7 @@ asmlinkage __visible void __init start_kernel(void)
>                                 static_command_line, __start___param,
>                                 __stop___param - __start___param,
>                                 -1, -1, &unknown_bootoption);
> -     if (after_dashes)
> +     if (!IS_ERR_OR_NULL(after_dashes))
>               parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
>                          set_init_arg);
>
> --
> 1.9.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to