All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Bill Wendling" <morbo@google.com>
Cc: linux-scsi@vger.kernel.org, conor+dt@kernel.org,
	devicetree@vger.kernel.org, media-ci@linuxtv.org,
	"Anna Schumaker" <anna@kernel.org>,
	dmitry.torokhov@gmail.com, robh@kernel.org,
	"Jeff Layton" <jlayton@kernel.org>,
	linux-input@vger.kernel.org, "Chuck Lever" <cel@kernel.org>,
	intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 03/28] ARM: atags: Replace strlcat() with snprintf() for cmdline extend
Date: Thu, 17 Sep 2026 07:38:16 +0000	[thread overview]
Message-ID: <20260917073816.987411F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260915081910.4142719-4-morbo@google.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] arm: atags: OOB read and panic in parse_tag_cmdline() due to strlen()
--

commit 9d3172b712a6dbf6594b26ae8fb56ebd952c7d66
Author: Bill Wendling <morbo@google.com>

ARM: atags: Replace strlcat() with snprintf() for cmdline extend

This commit replaces the deprecated strlcat() API with snprintf() in
parse_tag_cmdline() to append the bootloader tag command line to
default_command_line.

Link: https://github.com/KSPP/linux/issues/370 [1]

> diff --git a/arch/arm/kernel/atags_parse.c b/arch/arm/kernel/atags_parse.c
> index 4ec591bde3dfa..21140b44d96e6 100644
> --- a/arch/arm/kernel/atags_parse.c
> +++ b/arch/arm/kernel/atags_parse.c
> @@ -121,9 +121,10 @@ __tagtable(ATAG_REVISION, parse_tag_revision);
>  static int __init parse_tag_cmdline(const struct tag *tag)
>  {
>  #if defined(CONFIG_CMDLINE_EXTEND)
> -	strlcat(default_command_line, " ", COMMAND_LINE_SIZE);
> -	strlcat(default_command_line, tag->u.cmdline.cmdline,
> -		COMMAND_LINE_SIZE);
> +	size_t len = strlen(default_command_line);

[Severity: High]
Is it possible for strlen() to read out of bounds or panic here?

If CONFIG_CMDLINE is exactly COMMAND_LINE_SIZE characters long, the C compiler
initializes the default_command_line array without a null terminator. The
original strlcat() code used strnlen() underneath and handled full buffers
safely.

Under CONFIG_FORTIFY_SOURCE, calling strlen() on an unterminated buffer triggers
a fortify_panic(), which will crash the kernel during early boot.

Without CONFIG_FORTIFY_SOURCE, strlen() will read out of bounds until it finds
a null byte, resulting in len being larger than COMMAND_LINE_SIZE.

> +
> +	snprintf(default_command_line + len, COMMAND_LINE_SIZE - len,
> +		 " %s", tag->u.cmdline.cmdline);

[Severity: High]
If len exceeds COMMAND_LINE_SIZE as described above, will this calculation
underflow?

This would cause COMMAND_LINE_SIZE - len to mathematically underflow to a huge
unsigned value.

When this huge size parameter is passed to snprintf(), it triggers a
WARN_ON_ONCE(size > INT_MAX) in vsnprintf().

>  #elif defined(CONFIG_CMDLINE_FORCE)
>  	pr_warn("Ignoring tag cmdline (using the default kernel command line)\n");

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260915081910.4142719-1-morbo@google.com?part=3

  parent reply	other threads:[~2026-09-17  7:38 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-15  8:18 [PATCH 00/28] Replace remaining strlcat() call sites with snprintf()/seq_buf() Bill Wendling
2026-09-15  8:18 ` [PATCH 01/28] ALSA: ac97: Refactor snd_ac97_get_name() to use snprintf() Bill Wendling
2026-09-15 18:39   ` Kees Cook
2026-09-16  9:29     ` David Laight
2026-09-15  8:18 ` [PATCH 02/28] sunrpc: Refactor rpc_sockaddr2uaddr() to use snprintf() instead of strlcat() Bill Wendling
2026-09-15 10:17   ` Jeff Layton
2026-09-15  8:18 ` [PATCH 03/28] ARM: atags: Replace strlcat() with snprintf() for cmdline extend Bill Wendling
2026-09-15 19:00   ` Kees Cook
2026-09-16  8:28     ` Bill Wendling
2026-09-17  7:38   ` sashiko-bot [this message]
2026-09-15  8:18 ` [PATCH 04/28] scsi: bfa: Use snprintf() in bfa_fcs_fabric_nsymb_init() Bill Wendling
2026-09-17  7:38   ` sashiko-bot
2026-09-15  8:18 ` [PATCH 05/28] ALSA: usb-audio: Refactor usb_audio_make_longname() to use seq_buf Bill Wendling
2026-09-17  7:38   ` sashiko-bot
2026-09-15  8:18 ` [PATCH 06/28] comedi: comedi_bond: Refactor strlcat() to seq_buf in do_dev_config() Bill Wendling
2026-09-15  8:18 ` [PATCH 07/28] scsi: bfa: Use snprintf() in bfa_fcs_fabric_psymb_init() Bill Wendling
2026-09-15  8:18 ` [PATCH 08/28] devlink: Refactor strlcat() to seq_buf in __devlink_compat_running_version() Bill Wendling
2026-09-17  7:38   ` sashiko-bot
2026-09-15  8:18 ` [PATCH 09/28] drm/dp_mst: Refactor build_mst_prop_path() to use seq_buf Bill Wendling
2026-09-15  8:18 ` [PATCH 10/28] of/fdt: Replace strlcat() with snprintf() in early_init_dt_scan_chosen() Bill Wendling
2026-09-15 15:05   ` Rob Herring
2026-09-15  8:18 ` [PATCH 11/28] wifi: brcmfmac: Replace strlcat() with snprintf() in brcmf_fw_alloc_request() Bill Wendling
2026-09-15  8:18 ` [PATCH 12/28] fortify: Convert strlcat() to snprintf() in strcat() Bill Wendling
2026-09-17  7:38   ` sashiko-bot
2026-09-15  8:18 ` [PATCH 13/28] i40e: Replace strlcat() with snprintf() in i40e_nvm_version_str() Bill Wendling
2026-09-15  8:18 ` [PATCH 14/28] ALSA: usb-audio: Refactor append_ctl_name() to use snprintf() Bill Wendling
2026-09-15  8:18 ` [PATCH 15/28] orangefs: Use seq_buf for debug help string generation Bill Wendling
2026-09-22 16:11   ` Mike Marshall
2026-09-15  8:18 ` [PATCH 16/28] pinctrl: samsung: Use snprintf() to construct pin bank names Bill Wendling
2026-09-16  6:01   ` Loktionov, Aleksandr
2026-09-15  8:18 ` [PATCH 17/28] MIPS: cmdline: Refactor bootcmdline_append() to use snprintf() Bill Wendling
2026-09-15  8:18 ` [PATCH 18/28] LoongArch: Refactor bootcmdline_init() to use seq_buf instead of strlcat() Bill Wendling
2026-09-15  8:18 ` [PATCH 19/28] x86/setup: Use snprintf() to concatenate builtin and boot command lines Bill Wendling
2026-09-17  7:38   ` sashiko-bot
2026-09-15  8:18 ` [PATCH 20/28] parisc: Refactor strlcat() to seq_buf in setup_cmdline() Bill Wendling
2026-09-15  8:18 ` [PATCH 21/28] NFS: nfsroot: Refactor root_nfs_cat() to use snprintf() Bill Wendling
2026-09-15 18:52   ` Kees Cook
2026-09-15 19:30     ` Bill Wendling
2026-09-15  8:18 ` [PATCH 22/28] media: si2165: Use snprintf() to format frontend name Bill Wendling
2026-09-16  6:02   ` Loktionov, Aleksandr
2026-09-15  8:18 ` [PATCH 23/28] Input: synaptics_usb - use seq_buf and snprintf() for name and phys Bill Wendling
2026-09-15  8:18 ` [PATCH 24/28] EDAC/thunderx: Fix stale error context in thunderx_l2c_threaded_isr() Bill Wendling
2026-09-16  6:02   ` Loktionov, Aleksandr
2026-09-15  8:18 ` [PATCH 25/28] EDAC/thunderx: Replace strlcat() with seq_buf Bill Wendling
2026-09-15 20:00   ` Kees Cook
2026-09-16  1:09     ` Borislav Petkov
2026-09-16 21:43       ` Bill Wendling
2026-09-15  8:18 ` [PATCH 26/28] wifi: wil6210: Refactor resume_triggers2string() to use seq_buf Bill Wendling
2026-09-15  8:18 ` [PATCH 27/28] drm/xe/pf: Convert strlcat() to seq_buf in control_read() Bill Wendling
2026-09-15 18:25   ` Kees Cook
2026-09-15  8:18 ` [PATCH 28/28] drm/xe/pf: Refactor strlcat() to seq_buf in sched_group_engines_read() Bill Wendling
2026-09-15 18:30   ` Kees Cook
2026-09-15 11:24 ` [PATCH 00/28] Replace remaining strlcat() call sites with snprintf()/seq_buf() Takashi Iwai
2026-09-15 14:23 ` ✓ CI.KUnit: success for " Patchwork
2026-09-15 18:05 ` [PATCH 00/28] " Kees Cook

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=20260917073816.987411F00893@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=anna@kernel.org \
    --cc=cel@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jlayton@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=media-ci@linuxtv.org \
    --cc=morbo@google.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.