From: Steven Rostedt <rostedt@goodmis.org>
To: <zhe.he@windriver.com>
Cc: <pmladek@suse.com>, <sergey.senozhatsky@gmail.com>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 1/2] printk: Fix panic caused by passing log_buf_len to command line
Date: Sat, 22 Sep 2018 12:19:05 -0400 [thread overview]
Message-ID: <20180922121905.3e4159eb@vmware.local.home> (raw)
In-Reply-To: <1537630852-247674-1-git-send-email-zhe.he@windriver.com>
On Sat, 22 Sep 2018 23:40:51 +0800
<zhe.he@windriver.com> wrote:
> From: He Zhe <zhe.he@windriver.com>
>
> log_buf_len_setup does not check input argument before passing it to
> simple_strtoull. The argument would be a NULL pointer if "log_buf_len",
> without its value, is set in command line and thus causes the following
> panic.
>
> PANIC: early exception 0xe3 IP 10:ffffffffaaeacd0d error 0 cr2 0x0
> [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.19.0-rc4-yocto-standard+ #1
> [ 0.000000] RIP: 0010:_parse_integer_fixup_radix+0xd/0x70
> ...
> [ 0.000000] Call Trace:
> [ 0.000000] simple_strtoull+0x29/0x70
> [ 0.000000] memparse+0x26/0x90
> [ 0.000000] log_buf_len_setup+0x17/0x22
> [ 0.000000] do_early_param+0x57/0x8e
> [ 0.000000] parse_args+0x208/0x320
> [ 0.000000] ? rdinit_setup+0x30/0x30
> [ 0.000000] parse_early_options+0x29/0x2d
> [ 0.000000] ? rdinit_setup+0x30/0x30
> [ 0.000000] parse_early_param+0x36/0x4d
> [ 0.000000] setup_arch+0x336/0x99e
> [ 0.000000] start_kernel+0x6f/0x4ee
> [ 0.000000] x86_64_start_reservations+0x24/0x26
> [ 0.000000] x86_64_start_kernel+0x6f/0x72
> [ 0.000000] secondary_startup_64+0xa4/0xb0
>
> This patch adds a check to prevent the panic.
>
> Signed-off-by: He Zhe <zhe.he@windriver.com>
> Cc: stable@vger.kernel.org
I just tried this on a 2.6.32 kernel, and it crashes there. I guess
this goes farther back than git history goes.
Perhaps it should be commented that this bug has been here since
creation of (git) time.
> Cc: pmladek@suse.com
> Cc: sergey.senozhatsky@gmail.com
> Cc: rostedt@goodmis.org
> ---
> v2:
> Split out the addition of pr_fmt and the unsigned update
Which unsigned update? As it does switch to unsigned to "unsigned int",
but that change is fine to me with this.
> v3:
> Use more clear error info
> Change unsigned to unsigned in to avoid checkpatch.pl warning
>
> kernel/printk/printk.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index 9bf5404..d9821c0 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -1048,7 +1048,14 @@ static void __init log_buf_len_update(unsigned size)
> /* save requested log_buf_len since it's too early to process it */
> static int __init log_buf_len_setup(char *str)
> {
> - unsigned size = memparse(str, &str);
> + unsigned int size;
I'm OK with the int update too, as its low risk.
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-- Steve
> +
> + if (!str) {
> + pr_err("boot command line parameter value not provided\n");
> + return -EINVAL;
> + }
> +
> + size = memparse(str, &str);
>
> log_buf_len_update(size);
>
next prev parent reply other threads:[~2018-09-22 16:19 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-22 15:40 [PATCH v3 1/2] printk: Fix panic caused by passing log_buf_len to command line zhe.he
2018-09-22 15:40 ` [PATCH v3 2/2] printk: Add KBUILD_MODNAME and correct wrong casting zhe.he
2018-09-25 11:34 ` Petr Mladek
2018-09-22 16:19 ` Steven Rostedt [this message]
2018-09-23 6:51 ` [PATCH v3 1/2] printk: Fix panic caused by passing log_buf_len to command line He Zhe
2018-09-24 13:11 ` Steven Rostedt
2018-09-25 11:25 ` Petr Mladek
2018-09-25 11:38 ` Sergey Senozhatsky
2018-09-25 11:55 ` Petr Mladek
-- strict thread matches above, loose matches on Subject: below --
2018-09-28 14:46 zhe.he
2018-09-29 8:26 ` Sergey Senozhatsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180922121905.3e4159eb@vmware.local.home \
--to=rostedt@goodmis.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=sergey.senozhatsky@gmail.com \
--cc=zhe.he@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.