Re: [PATCH] printk: handle blank console arguments passed in.

From: Petr Mladek
Date: Fri May 15 2020 - 11:24:24 EST


On Mon 2020-03-09 15:29:15, Shreyas Joshi wrote:
> If uboot passes a blank string to console_setup then it results in a trashed memory.
> Ultimately, the kernel crashes during freeing up the memory. This fix checks if there
> is a blank parameter being passed to console_setup from uboot.
> In case it detects that the console parameter is blank then
> it doesn't setup the serial device and it gracefully exits.
>
> Signed-off-by: Shreyas Joshi <shreyas.joshi@xxxxxxxxx>
> ---
> kernel/printk/printk.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index ad4606234545..e9ad730991e0 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -2165,7 +2165,10 @@ static int __init console_setup(char *str)
> char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for "ttyS" */
> char *s, *options, *brl_options = NULL;
> int idx;
> -
> + if (str[0] == 0) {
> + console_loglevel = 0;

What is the reason to set console_loglevel here, please?

> + return 1;
> + }

Anyway, for example, earlycon parameter is allowed to be used with
empty string when the console parameters can be set via ACPI SPCR,
see param_setup_earlycon(). Therefore I am afraid that every setup()
function has to handle this on its own and this patch makes sense.

Best Regards,
Petr