Re: [PATCH v3.18-rc3] param: fix crash on bad kernel arguments

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

 



Daniel Thompson <daniel.thompson@xxxxxxxxxx> 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.thompson@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> ---
>  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 stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]