[PATCH 00/28] Replace remaining strlcat() call sites with snprintf()/seq_buf()
WARM3d
53 messages,
9 authors,
3d ago · open the first message on its own page
strlcat() is deprecated: like strcat(), it requires re-scanning the
destination string from the beginning on every call, which is O(n^2)
when used to build up a string incrementally, and its truncation
behavior is easy to get wrong. See:
https://github.com/KSPP/linux/issues/370
This series removes the remaining strlcat() call sites in the tree
(plus the one inside fortify-string.h's strcat() implementation
itself), replacing each with snprintf(), scnprintf(), or the seq_buf()
API, whichever best fits the surrounding code.
One unrelated fix is included. While auditing drivers/edac/thunderx_edac.c
for its strlcat() conversion, "EDAC/thunderx: Fix stale error context in
thunderx_l2c_threaded_isr()" addresses a pre-existing bug, present since
the driver's original 2017 commit: thunderx_l2c_threaded_isr() computes
its ring "tail"/"ctx" once before its drain loop and never recomputes
them per iteration, unlike the analogous OCX handlers in the same file,
so it re-reports the same ring entry for every queued error instead of
draining the ring. It's split out as its own patch, ahead of the
strlcat() conversion for that file, so it can be reviewed and
backported independently of the rest of this series.
Bill Wendling (28):
ALSA: ac97: Refactor snd_ac97_get_name() to use snprintf()
sunrpc: Refactor rpc_sockaddr2uaddr() to use snprintf() instead of
strlcat()
ARM: atags: Replace strlcat() with snprintf() for cmdline extend
scsi: bfa: Use snprintf() in bfa_fcs_fabric_nsymb_init()
ALSA: usb-audio: Refactor usb_audio_make_longname() to use seq_buf
comedi: comedi_bond: Refactor strlcat() to seq_buf in do_dev_config()
scsi: bfa: Use snprintf() in bfa_fcs_fabric_psymb_init()
devlink: Refactor strlcat() to seq_buf in
__devlink_compat_running_version()
drm/dp_mst: Refactor build_mst_prop_path() to use seq_buf
of/fdt: Replace strlcat() with snprintf() in
early_init_dt_scan_chosen()
wifi: brcmfmac: Replace strlcat() with snprintf() in
brcmf_fw_alloc_request()
fortify: Convert strlcat() to snprintf() in strcat()
i40e: Replace strlcat() with snprintf() in i40e_nvm_version_str()
ALSA: usb-audio: Refactor append_ctl_name() to use snprintf()
orangefs: Use seq_buf for debug help string generation
pinctrl: samsung: Use snprintf() to construct pin bank names
MIPS: cmdline: Refactor bootcmdline_append() to use snprintf()
LoongArch: Refactor bootcmdline_init() to use seq_buf instead of
strlcat()
x86/setup: Use snprintf() to concatenate builtin and boot command
lines
parisc: Refactor strlcat() to seq_buf in setup_cmdline()
NFS: nfsroot: Refactor root_nfs_cat() to use snprintf()
media: si2165: Use snprintf() to format frontend name
Input: synaptics_usb - use seq_buf and snprintf() for name and phys
EDAC/thunderx: Fix stale error context in thunderx_l2c_threaded_isr()
EDAC/thunderx: Replace strlcat() with seq_buf
wifi: wil6210: Refactor resume_triggers2string() to use seq_buf
drm/xe/pf: Convert strlcat() to seq_buf in control_read()
drm/xe/pf: Refactor strlcat() to seq_buf in sched_group_engines_read()
arch/arm/kernel/atags_parse.c | 7 +-
arch/loongarch/kernel/setup.c | 22 +++--
arch/mips/kernel/setup.c | 21 ++++-
arch/parisc/kernel/setup.c | 16 ++--
arch/x86/kernel/setup.c | 8 +-
drivers/comedi/drivers/comedi_bond.c | 16 ++--
drivers/edac/thunderx_edac.c | 67 ++++++++++------
drivers/gpu/drm/display/drm_dp_mst_topology.c | 15 ++--
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 24 +++---
drivers/input/mouse/synaptics_usb.c | 29 ++++---
drivers/media/dvb-frontends/si2165.c | 17 ++--
drivers/net/ethernet/intel/i40e/i40e.h | 15 +++-
drivers/net/wireless/ath/wil6210/wmi.c | 38 +++++----
.../broadcom/brcm80211/brcmfmac/firmware.c | 21 ++---
drivers/of/fdt.c | 11 ++-
drivers/pinctrl/samsung/pinctrl-samsung.c | 3 +-
drivers/scsi/bfa/bfa_fcs.c | 80 +++++--------------
fs/nfs/nfsroot.c | 11 ++-
fs/orangefs/orangefs-debugfs.c | 36 ++++-----
include/linux/fortify-string.h | 7 +-
net/devlink/dev.c | 8 +-
net/sunrpc/addr.c | 16 ++--
sound/pci/ac97/ac97_codec.c | 9 ++-
sound/usb/card.c | 58 +++++++++-----
sound/usb/mixer.c | 8 +-
25 files changed, 309 insertions(+), 254 deletions(-)
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
--
2.47.3
snd_ac97_get_name() appends the codec name using two strlcat() calls and
then appends the revision using an unbounded sprintf() at
"name + strlen(name)", which could overflow the destination buffer.
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() and sprintf() calls with a single snprintf() using the existing
string length, matching the pattern already used in the "else" branch.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Claude-3-5-Sonnet:20241022 [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
sound/pci/ac97/ac97_codec.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 0bb65be021d9..e145099ee02a 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c @@ -1850,10 +1850,12 @@ void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name,
pid = look_for_codec_id ( snd_ac97_codec_ids , id );
if ( pid ) {
- strlcat ( name , " " , maxlen );
- strlcat ( name , pid -> name , maxlen );
+ int l = strlen ( name );
+
if ( pid -> mask != 0xffffffff )
- sprintf ( name + strlen ( name ), " rev %u" , id & ~ pid -> mask );
+ snprintf ( name + l , maxlen - l , " %s rev %u" , pid -> name , id & ~ pid -> mask );
+ else
+ snprintf ( name + l , maxlen - l , " %s" , pid -> name );
if ( ac97 && pid -> patch ) {
if (( modem && ( pid -> flags & AC97_MODEM_PATCH )) ||
( ! modem && ! ( pid -> flags & AC97_MODEM_PATCH ))) @@ -1861,6 +1863,7 @@ void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name,
}
} else {
int l = strlen ( name );
+
snprintf ( name + l , maxlen - l , " id %x" , id & 0xff );
}
} --
2.55.0.1032.g73a4cd73de-goog
When CONFIG_CMDLINE_EXTEND is enabled, parse_tag_cmdline() uses two
strlcat() calls to append a space and the bootloader tag command line to
default_command_line.
In preparation for removing the deprecated strlcat() API[1], compute the
length of default_command_line once and append the space and tag command
line in a single snprintf() call.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: developer:gpt-4o [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
arch/arm/kernel/atags_parse.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/arm/kernel/atags_parse.c b/arch/arm/kernel/atags_parse.c
index 4ec591bde3df..21140b44d96e 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 );
+
+ snprintf ( default_command_line + len , COMMAND_LINE_SIZE - len ,
+ " %s" , tag -> u . cmdline . cmdline );
#elif defined(CONFIG_CMDLINE_FORCE)
pr_warn ( "Ignoring tag cmdline (using the default kernel command line) \n " );
#else --
2.55.0.1032.g73a4cd73de-goog
rpc_sockaddr2uaddr() formats the IP address into "addrbuf", formats the
port into a temporary "portbuf" buffer with snprintf(), and then appends
"portbuf" to "addrbuf" using strlcat().
In preparation for removing the deprecated strlcat() API[1], capture the
length returned by rpc_ntop4() and rpc_ntop6_noscopeid() and format the
port directly onto the end of "addrbuf" with snprintf(). This eliminates
the strlcat() call and the temporary "portbuf" buffer.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:3.5-sonnet [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
net/sunrpc/addr.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/net/sunrpc/addr.c b/net/sunrpc/addr.c
index 97ff11973c49..a1e4173e5a53 100644
--- a/net/sunrpc/addr.c
+++ b/net/sunrpc/addr.c @@ -264,18 +264,20 @@ EXPORT_SYMBOL_GPL(rpc_pton);
*/
char * rpc_sockaddr2uaddr ( const struct sockaddr * sap , gfp_t gfp_flags )
{
- char portbuf [ RPCBIND_MAXUADDRPLEN ];
char addrbuf [ RPCBIND_MAXUADDRLEN ];
unsigned short port ;
+ size_t len ;
switch ( sap -> sa_family ) {
case AF_INET :
- if ( rpc_ntop4 ( sap , addrbuf , sizeof ( addrbuf )) == 0 )
+ len = rpc_ntop4 ( sap , addrbuf , sizeof ( addrbuf ));
+ if ( len == 0 || len >= sizeof ( addrbuf ))
return NULL ;
port = ntohs ((( struct sockaddr_in * ) sap ) -> sin_port );
break ;
case AF_INET6 :
- if ( rpc_ntop6_noscopeid ( sap , addrbuf , sizeof ( addrbuf )) == 0 )
+ len = rpc_ntop6_noscopeid ( sap , addrbuf , sizeof ( addrbuf ));
+ if ( len == 0 || len >= sizeof ( addrbuf ))
return NULL ;
port = ntohs ((( struct sockaddr_in6 * ) sap ) -> sin6_port );
break ; @@ -283,11 +285,8 @@ char *rpc_sockaddr2uaddr(const struct sockaddr *sap, gfp_t gfp_flags)
return NULL ;
}
- if ( snprintf ( portbuf , sizeof ( portbuf ),
- ".%u.%u" , port >> 8 , port & 0xff ) >= ( int ) sizeof ( portbuf ))
- return NULL ;
-
- if ( strlcat ( addrbuf , portbuf , sizeof ( addrbuf )) >= sizeof ( addrbuf ))
+ if ( snprintf ( addrbuf + len , sizeof ( addrbuf ) - len ,
+ ".%u.%u" , port >> 8 , port & 0xff ) >= sizeof ( addrbuf ) - len )
return NULL ;
return kstrdup ( addrbuf , gfp_flags ); @@ -352,3 +351,4 @@ size_t rpc_uaddr2sockaddr(struct net *net, const char *uaddr,
return 0 ;
}
EXPORT_SYMBOL_GPL ( rpc_uaddr2sockaddr );
+ --
2.55.0.1032.g73a4cd73de-goog
__devlink_compat_running_version() appends running firmware version
strings and spaces to "buf" inside nested netlink attribute loops using
strlcat(), rescanning "buf" on every iteration.
In preparation for removing the deprecated strlcat() API[1], use struct
seq_buf anchored at the current length of "buf" and append each version
entry with seq_buf_printf().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:v1 [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
net/devlink/dev.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/net/devlink/dev.c b/net/devlink/dev.c
index 55959b0ff5ab..987b071345c4 100644
--- a/net/devlink/dev.c
+++ b/net/devlink/dev.c @@ -5,6 +5,7 @@
*/
#include <linux/device.h>
+ #include <linux/seq_buf.h>
#include <net/genetlink.h>
#include <net/sock.h>
#include "devl_internal.h" @@ -1190,6 +1191,7 @@ static void __devlink_compat_running_version(struct devlink *devlink,
{
struct devlink_info_req req = {};
const struct nlattr * nlattr ;
+ struct seq_buf s ;
struct sk_buff * msg ;
int rem , err ;
@@ -1202,6 +1204,9 @@ static void __devlink_compat_running_version(struct devlink *devlink,
if ( err )
goto free_msg ;
+ seq_buf_init ( & s , buf , len );
+ s . len = strnlen ( buf , len );
+
nla_for_each_attr_type ( nlattr , DEVLINK_ATTR_INFO_VERSION_RUNNING ,
( void * ) msg -> data , msg -> len , rem ) {
const struct nlattr * kv ; @@ -1209,8 +1214,7 @@ static void __devlink_compat_running_version(struct devlink *devlink,
nla_for_each_nested_type ( kv , DEVLINK_ATTR_INFO_VERSION_VALUE ,
nlattr , rem_kv ) {
- strlcat ( buf , nla_data ( kv ), len );
- strlcat ( buf , " " , len );
+ seq_buf_printf ( & s , "%s " , ( const char * ) nla_data ( kv ));
}
}
free_msg : --
2.55.0.1032.g73a4cd73de-goog
usb_audio_make_longname() builds card->longname incrementally from the
vendor/manufacturer name, shortname, USB device path, and USB speed using
strscpy(), strlcat(), and manual buffer offset calculations for
usb_make_path().
In preparation for removing the deprecated strlcat() API[1], refactor
usb_audio_make_longname() to use struct seq_buf to track the buffer
position and remaining space across these operations.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini:3.5-pro [git, make, checkpatch]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
sound/usb/card.c | 58 ++++++++++++++++++++++++++++++++----------------
1 file changed, 39 insertions(+), 19 deletions(-)
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 9307da95efbe..bdca8085fca6 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c @@ -25,6 +25,7 @@
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/string.h>
+ #include <linux/seq_buf.h>
#include <linux/ctype.h>
#include <linux/usb.h>
#include <linux/moduleparam.h> @@ -651,7 +652,9 @@ static void usb_audio_make_longname(struct usb_device *dev,
struct snd_card * card = chip -> card ;
const struct usb_audio_device_name * preset ;
const char * s = NULL ;
- int len ;
+ struct seq_buf sb ;
+ char * buf ;
+ size_t size ;
preset = lookup_device_name ( chip -> usb_id );
@@ -667,44 +670,61 @@ static void usb_audio_make_longname(struct usb_device *dev,
s = preset -> vendor_name ;
else if ( quirk && quirk -> vendor_name )
s = quirk -> vendor_name ;
- * card -> longname = 0 ;
- if ( s && * s )
- strscpy ( card -> longname , s );
- else if ( dev -> manufacturer && * dev -> manufacturer )
- strscpy ( card -> longname , dev -> manufacturer );
- if ( * card -> longname ) {
- strim ( card -> longname );
- if ( * card -> longname )
- strlcat ( card -> longname , " " , sizeof ( card -> longname ));
+ seq_buf_init ( & sb , card -> longname , sizeof ( card -> longname ));
+
+ if ( s && * s )
+ seq_buf_puts ( & sb , s );
+ else if ( dev -> manufacturer && * dev -> manufacturer )
+ seq_buf_puts ( & sb , dev -> manufacturer );
+
+ if ( seq_buf_used ( & sb )) {
+ char * trimmed ;
+
+ seq_buf_str ( & sb );
+ trimmed = strim ( card -> longname );
+ if ( trimmed != card -> longname )
+ memmove ( card -> longname , trimmed , strlen ( trimmed ) + 1 );
+ sb . len = strlen ( card -> longname );
+ if ( sb . len )
+ seq_buf_putc ( & sb , ' ' );
}
- strlcat ( card -> longname , card -> shortname , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , card -> shortname );
- len = strlcat ( card -> longname , " at " , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , " at " );
- if ( len < sizeof ( card -> longname ))
- usb_make_path ( dev , card -> longname + len , sizeof ( card -> longname ) - len );
+ size = seq_buf_get_buf ( & sb , & buf );
+ if ( size > 0 ) {
+ int path_len = usb_make_path ( dev , buf , size );
+
+ if ( path_len >= 0 )
+ seq_buf_commit ( & sb , path_len );
+ else
+ seq_buf_set_overflow ( & sb );
+ }
switch ( snd_usb_get_speed ( dev )) {
case USB_SPEED_LOW :
- strlcat ( card -> longname , ", low speed" , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , ", low speed" );
break ;
case USB_SPEED_FULL :
- strlcat ( card -> longname , ", full speed" , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , ", full speed" );
break ;
case USB_SPEED_HIGH :
- strlcat ( card -> longname , ", high speed" , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , ", high speed" );
break ;
case USB_SPEED_SUPER :
- strlcat ( card -> longname , ", super speed" , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , ", super speed" );
break ;
case USB_SPEED_SUPER_PLUS :
- strlcat ( card -> longname , ", super speed plus" , sizeof ( card -> longname ));
+ seq_buf_puts ( & sb , ", super speed plus" );
break ;
default :
break ;
}
+
+ seq_buf_str ( & sb );
}
static void snd_usb_init_quirk_flags ( int idx , struct snd_usb_audio * chip ) --
2.55.0.1032.g73a4cd73de-goog
bfa_fcs_fabric_nsymb_init() constructs the node symbolic name using
strscpy() followed by five strlcat() calls and explicit NUL-termination.
In preparation for removing the deprecated strlcat() API[1], replace the
chained string copies with a single snprintf() call.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini-2.5-Pro:2.5 [shell_command_run, editor_update_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/scsi/bfa/bfa_fcs.c | 31 +++++++------------------------
1 file changed, 7 insertions(+), 24 deletions(-)
diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
index 9b57312f43f5..7a4e0e8c7182 100644
--- a/drivers/scsi/bfa/bfa_fcs.c
+++ b/drivers/scsi/bfa/bfa_fcs.c @@ -821,30 +821,13 @@ bfa_fcs_fabric_nsymb_init(struct bfa_fcs_fabric_s *fabric)
bfa_ioc_get_adapter_model ( & fabric -> fcs -> bfa -> ioc , model );
- /* Model name/number */
- strscpy ( port_cfg -> node_sym_name . symname , model ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> node_sym_name . symname ,
- BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
- /* Driver Version */
- strlcat ( port_cfg -> node_sym_name . symname , ( char * ) driver_info -> version ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> node_sym_name . symname ,
- BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
- /* Host machine name */
- strlcat ( port_cfg -> node_sym_name . symname ,
- driver_info -> host_machine_name ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> node_sym_name . symname ,
- BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
- /* null terminate */
- port_cfg -> node_sym_name . symname [ BFA_SYMNAME_MAXLEN - 1 ] = 0 ;
+ /* Model name/number, Driver Version, Host machine name */
+ snprintf ( port_cfg -> node_sym_name . symname , BFA_SYMNAME_MAXLEN ,
+ "%s" BFA_FCS_PORT_SYMBNAME_SEPARATOR
+ "%s" BFA_FCS_PORT_SYMBNAME_SEPARATOR
+ "%s" BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ model , ( char * ) driver_info -> version ,
+ driver_info -> host_machine_name );
}
/* --
2.55.0.1032.g73a4cd73de-goog
Similar to bfa_fcs_fabric_nsymb_init(), bfa_fcs_fabric_psymb_init()
builds the port symbolic name using strscpy() and a chain of seven or
eight strlcat() calls.
In preparation for removing the deprecated strlcat() API[1], replace the
chained strscpy() and strlcat() calls with a single snprintf() call.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini-3.5-Pro:20241215 [editor_update_file, make_kernel_build_single_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/scsi/bfa/bfa_fcs.c | 49 ++++++++++----------------------------
1 file changed, 13 insertions(+), 36 deletions(-)
diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
index 7a4e0e8c7182..9fe0343c0b32 100644
--- a/drivers/scsi/bfa/bfa_fcs.c
+++ b/drivers/scsi/bfa/bfa_fcs.c @@ -760,49 +760,26 @@ bfa_fcs_fabric_psymb_init(struct bfa_fcs_fabric_s *fabric)
bfa_ioc_get_adapter_model ( & fabric -> fcs -> bfa -> ioc , model );
- /* Model name/number */
- strscpy ( port_cfg -> sym_name . symname , model ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> sym_name . symname , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
- /* Driver Version */
- strlcat ( port_cfg -> sym_name . symname , driver_info -> version ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> sym_name . symname , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
- /* Host machine name */
- strlcat ( port_cfg -> sym_name . symname ,
- driver_info -> host_machine_name ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> sym_name . symname , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
/*
* Host OS Info :
* If OS Patch Info is not there , do not truncate any bytes from the
* OS name string and instead copy the entire OS info string ( 64 bytes ).
*/
if ( driver_info -> host_os_patch [ 0 ] == '\0' ) {
- strlcat ( port_cfg -> sym_name . symname ,
- driver_info -> host_os_name ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> sym_name . symname ,
- BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
+ snprintf ( port_cfg -> sym_name . symname , BFA_SYMNAME_MAXLEN ,
+ "%s%s%s%s%s%s%s%s" ,
+ model , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> version , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> host_machine_name , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> host_os_name , BFA_FCS_PORT_SYMBNAME_SEPARATOR );
} else {
- strlcat ( port_cfg -> sym_name . symname ,
- driver_info -> host_os_name ,
- BFA_SYMNAME_MAXLEN );
- strlcat ( port_cfg -> sym_name . symname ,
- BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
- BFA_SYMNAME_MAXLEN );
-
- /* Append host OS Patch Info */
- strlcat ( port_cfg -> sym_name . symname ,
- driver_info -> host_os_patch ,
- BFA_SYMNAME_MAXLEN );
+ snprintf ( port_cfg -> sym_name . symname , BFA_SYMNAME_MAXLEN ,
+ "%s%s%s%s%s%s%s%s%s" ,
+ model , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> version , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> host_machine_name , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> host_os_name , BFA_FCS_PORT_SYMBNAME_SEPARATOR ,
+ driver_info -> host_os_patch );
}
/* null terminate */ --
2.55.0.1032.g73a4cd73de-goog
do_dev_config() builds a space-separated list of bonded devices in
devpriv->name by formatting each "minor:subdev " pair into a temporary
stack buffer with snprintf() and appending it with strlcat() in a loop.
In preparation for removing the deprecated strlcat() API[1], use struct
seq_buf and seq_buf_printf() to format each entry directly into
devpriv->name. This avoids repeated rescanning of devpriv->name and
eliminates the temporary buffer.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: SecurityEngineerAgent:Gemini2.5 [editor_update_file, make_kernel_build_single_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/comedi/drivers/comedi_bond.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/drivers/comedi/drivers/comedi_bond.c b/drivers/comedi/drivers/comedi_bond.c
index 8e10ecab4f0d..a10cfbd04c72 100644
--- a/drivers/comedi/drivers/comedi_bond.c
+++ b/drivers/comedi/drivers/comedi_bond.c @@ -39,6 +39,7 @@
#include <linux/module.h>
#include <linux/string.h>
+ #include <linux/seq_buf.h>
#include <linux/slab.h>
#include <linux/comedi.h>
#include <linux/comedi/comedilib.h> @@ -170,10 +171,11 @@ static int do_dev_config(struct comedi_device *dev, struct comedi_devconfig *it)
{
struct comedi_bond_private * devpriv = dev -> private ;
DECLARE_BITMAP ( devs_opened , COMEDI_NUM_BOARD_MINORS );
+ struct seq_buf s ;
int i ;
memset ( & devs_opened , 0 , sizeof ( devs_opened ));
- devpriv -> name [ 0 ] = 0 ;
+ seq_buf_init ( & s , devpriv -> name , sizeof ( devpriv -> name ));
/*
* Loop through all comedi devices specified on the command - line ,
* building our device list . @@ -250,15 +252,9 @@ static int do_dev_config(struct comedi_device *dev, struct comedi_devconfig *it)
}
devpriv -> devs = devs ;
devpriv -> devs [ devpriv -> ndevs ++ ] = bdev ;
- {
- /* Append dev:subdev to devpriv->name */
- char buf [ 20 ];
- snprintf ( buf , sizeof ( buf ), "%u:%u " ,
- bdev -> minor , bdev -> subdev );
- strlcat ( devpriv -> name , buf ,
- sizeof ( devpriv -> name ));
- }
+ /* Append dev:subdev to devpriv->name */
+ seq_buf_printf ( & s , "%u:%u " , bdev -> minor , bdev -> subdev );
}
}
@@ -267,6 +263,8 @@ static int do_dev_config(struct comedi_device *dev, struct comedi_devconfig *it)
return - EINVAL ;
}
+ seq_buf_str ( & s );
+
return 0 ;
}
--
2.55.0.1032.g73a4cd73de-goog
brcmf_fw_alloc_request() constructs firmware file paths by chaining
strscpy() and multiple strlcat() calls for the module parameter path,
separator, base name, and extension.
In preparation for removing the deprecated strlcat() API[1], format the
complete firmware path in a single snprintf() call.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: SecurityEngineer:GPT-4o [editor_update_file, make_kernel_build_single_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
.../broadcom/brcm80211/brcmfmac/firmware.c | 21 +++++++------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
index 22ff326f1924..2f74a952599e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c @@ -845,22 +845,17 @@ brcmf_fw_alloc_request(u32 chip, u32 chiprev,
fwreq -> n_items = n_fwnames ;
for ( j = 0 ; j < n_fwnames ; j ++ ) {
- fwreq -> items [ j ]. path = fwnames [ j ]. path ;
- fwnames [ j ]. path [ 0 ] = '\0' ;
/* check if firmware path is provided by module parameter */
if ( brcmf_mp_global . firmware_path [ 0 ] != '\0' ) {
- strscpy ( fwnames [ j ]. path , mp_path ,
- BRCMF_FW_NAME_LEN );
-
- if ( end != '/' ) {
- strlcat ( fwnames [ j ]. path , "/" ,
- BRCMF_FW_NAME_LEN );
- }
+ snprintf ( fwnames [ j ]. path , BRCMF_FW_NAME_LEN , "%s%s%s%s" ,
+ mp_path , ( end == '/' ) ? "" : "/" ,
+ mapping_table [ i ]. fw_base ,
+ fwnames [ j ]. extension );
+ } else {
+ snprintf ( fwnames [ j ]. path , BRCMF_FW_NAME_LEN , "%s%s" ,
+ mapping_table [ i ]. fw_base ,
+ fwnames [ j ]. extension );
}
- strlcat ( fwnames [ j ]. path , mapping_table [ i ]. fw_base ,
- BRCMF_FW_NAME_LEN );
- strlcat ( fwnames [ j ]. path , fwnames [ j ]. extension ,
- BRCMF_FW_NAME_LEN );
fwreq -> items [ j ]. path = fwnames [ j ]. path ;
}
--
2.55.0.1032.g73a4cd73de-goog
When CONFIG_CMDLINE_EXTEND is enabled, early_init_dt_scan_chosen() uses
two strlcat() calls to append a space and CONFIG_CMDLINE to the command
line buffer.
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() calls with a single snprintf() call using the existing string
length.
Additionally, check for a NULL initial_boot_params pointer and jump to
"handle_cmdline" so that CONFIG_CMDLINE handling still occurs without
dereferencing a NULL FDT pointer in fdt_path_offset().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Assistant:Claude-3.5-Sonnet [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/of/fdt.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index a64afc3ded3d..311021a83f03 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c @@ -1095,6 +1095,9 @@ int __init early_init_dt_scan_chosen(char *cmdline)
const void * rng_seed ;
const void * fdt = initial_boot_params ;
+ if ( ! fdt )
+ goto handle_cmdline ;
+
node = fdt_path_offset ( fdt , "/chosen" );
if ( node < 0 )
node = fdt_path_offset ( fdt , "/chosen@0" ); @@ -1133,8 +1136,12 @@ int __init early_init_dt_scan_chosen(char *cmdline)
*/
#ifdef CONFIG_CMDLINE
#if defined(CONFIG_CMDLINE_EXTEND)
- strlcat ( cmdline , " " , COMMAND_LINE_SIZE );
- strlcat ( cmdline , CONFIG_CMDLINE , COMMAND_LINE_SIZE );
+ {
+ size_t len = strlen ( cmdline );
+
+ if ( len < COMMAND_LINE_SIZE )
+ snprintf ( cmdline + len , COMMAND_LINE_SIZE - len , " %s" , CONFIG_CMDLINE );
+ }
#elif defined(CONFIG_CMDLINE_FORCE)
strscpy ( cmdline , CONFIG_CMDLINE , COMMAND_LINE_SIZE );
#else --
2.55.0.1032.g73a4cd73de-goog
build_mst_prop_path() constructs an MST property path by formatting port
numbers into a temporary buffer and appending them to "proppath" with
strlcat() in a loop.
In preparation for removing the deprecated strlcat() API[1], use struct
seq_buf and seq_buf_printf() to format the path components directly into
"proppath", eliminating the temporary buffer and repeated string scans.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Claude-3-5-Sonnet:20241022 [editor_update_file, make_kernel_build_single_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/gpu/drm/display/drm_dp_mst_topology.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c
index 7ce9e212770a..229b5fec44bf 100644
--- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c @@ -29,6 +29,7 @@
#include <linux/kernel.h>
#include <linux/random.h>
#include <linux/sched.h>
+ #include <linux/seq_buf.h>
#include <linux/seq_file.h>
#if IS_ENABLED(CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS) @@ -2216,19 +2217,21 @@ static void build_mst_prop_path(const struct drm_dp_mst_branch *mstb,
char * proppath ,
size_t proppath_size )
{
+ struct seq_buf s ;
int i ;
- char temp [ 8 ];
- snprintf ( proppath , proppath_size , "mst:%d" , mstb -> mgr -> conn_base_id );
+ seq_buf_init ( & s , proppath , proppath_size );
+
+ seq_buf_printf ( & s , "mst:%d" , mstb -> mgr -> conn_base_id );
for ( i = 0 ; i < ( mstb -> lct - 1 ); i ++ ) {
int shift = ( i % 2 ) ? 0 : 4 ;
int port_num = ( mstb -> rad [ i / 2 ] >> shift ) & 0xf ;
- snprintf ( temp , sizeof ( temp ), "-%d" , port_num );
- strlcat ( proppath , temp , proppath_size );
+ seq_buf_printf ( & s , "-%d" , port_num );
}
- snprintf ( temp , sizeof ( temp ), "-%d" , pnum );
- strlcat ( proppath , temp , proppath_size );
+ seq_buf_printf ( & s , "-%d" , pnum );
+
+ seq_buf_str ( & s );
}
/** --
2.55.0.1032.g73a4cd73de-goog
The fortified implementation of strcat() in include/linux/fortify-string.h
currently relies on strlcat() to perform bounded concatenation and detect
buffer overflows.
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() call in strcat(). When the destination buffer size is unknown
(SIZE_MAX), call __underlying_strcat() directly. Otherwise, determine the
destination length with __fortify_strlen() and append the source string
using __builtin_snprintf(), preserving the existing fortify_panic() check
on overflow.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: SecurityEngineer:Gemini1.5Pro [editor_update_file, shell_command_run, test_runner_run_kunit_test]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
include/linux/fortify-string.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h
index cf841dc71fef..0b489124bfcb 100644
--- a/include/linux/fortify-string.h
+++ b/include/linux/fortify-string.h @@ -363,7 +363,12 @@ __FORTIFY_INLINE __diagnose_as(__builtin_strcat, 1, 2)
char * strcat ( char * const POS p , const char * q )
{
const size_t p_size = __member_size ( p );
- const size_t wanted = strlcat ( p , q , p_size );
+
+ if ( p_size == SIZE_MAX )
+ return __underlying_strcat ( p , q );
+
+ const size_t p_len = __fortify_strlen ( p );
+ const size_t wanted = p_len + __builtin_snprintf ( p + p_len , p_size - p_len , "%s" , q );
if ( p_size <= wanted )
fortify_panic ( FORTIFY_FUNC_strcat , FORTIFY_WRITE , p_size , wanted + 1 , p ); --
2.55.0.1032.g73a4cd73de-goog
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() call in append_ctl_name() with strlen() and snprintf(),
preserving its return value semantics (the total length of the string it
attempted to create).
Also replace an open-coded strlcat() call in build_connector_control()
with append_ctl_name().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:Claude-3-5-Sonnet [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
sound/usb/mixer.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index ecaa8bc08d7c..f64ecad4e77e 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c @@ -1722,7 +1722,11 @@ const struct snd_kcontrol_new *snd_usb_feature_unit_ctl = &usb_feature_unit_ctl;
*/
static size_t append_ctl_name ( struct snd_kcontrol * kctl , const char * str )
{
- return strlcat ( kctl -> id . name , str , sizeof ( kctl -> id . name ));
+ size_t len = strlen ( kctl -> id . name );
+
+ if ( len >= sizeof ( kctl -> id . name ))
+ return len + strlen ( str );
+ return len + snprintf ( kctl -> id . name + len , sizeof ( kctl -> id . name ) - len , "%s" , str );
}
/* @@ -2090,7 +2094,7 @@ static void build_connector_control(struct usb_mixer_interface *mixer,
}
if ( check_mapped_name ( map , kctl -> id . name , sizeof ( kctl -> id . name )))
- strlcat ( kctl -> id . name , " Jack" , sizeof ( kctl -> id . name ));
+ append_ctl_name ( kctl , " Jack" );
else
get_connector_control_name ( mixer , term , is_input , kctl -> id . name ,
sizeof ( kctl -> id . name )); --
2.55.0.1032.g73a4cd73de-goog
i40e_nvm_version_str() uses strlcat() to optionally append the EETrackID
and combo image version strings to the NVM version buffer.
In preparation for removing the deprecated strlcat() API[1], replace these
strlcat() calls with bounded snprintf() calls at the current end of the
buffer.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:r1-preview [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/net/ethernet/intel/i40e/i40e.h | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 1b6a8fbaa648..9f792128a0ef 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h @@ -1059,19 +1059,26 @@ static inline char *i40e_nvm_version_str(struct i40e_hw *hw, char *buf,
size_t len )
{
char ver [ 16 ] = " " ;
+ size_t offset ;
/* Get NVM version */
i40e_info_nvm_ver ( hw , buf , len );
/* Append EETrackID if provided */
i40e_info_eetrack ( hw , & ver [ 1 ], sizeof ( ver ) - 1 );
- if ( strlen ( ver ) > 1 )
- strlcat ( buf , ver , len );
+ if ( strlen ( ver ) > 1 ) {
+ offset = strlen ( buf );
+ if ( offset < len )
+ snprintf ( buf + offset , len - offset , "%s" , ver );
+ }
/* Append combo image version if provided */
i40e_info_civd_ver ( hw , & ver [ 1 ], sizeof ( ver ) - 1 );
- if ( strlen ( ver ) > 1 )
- strlcat ( buf , ver , len );
+ if ( strlen ( ver ) > 1 ) {
+ offset = strlen ( buf );
+ if ( offset < len )
+ snprintf ( buf + offset , len - offset , "%s" , ver );
+ }
return buf ;
} --
2.55.0.1032.g73a4cd73de-goog
orangefs_prepare_debugfs_help_string() constructs the debugfs help text in
a dynamically allocated buffer using repeated strlcat() calls across
keyword loops, rescanning the buffer on every append.
In preparation for removing the deprecated strlcat() API[1], use struct
seq_buf to build the help string. This tracks the write position across
the loops, allows formatting each keyword line with a single
seq_buf_printf() call, and checks for truncation via
seq_buf_has_overflowed().
Additionally, replace the final strlcat() call that copies the completed
string into debug_help_string with strscpy().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini:gemini-2.0-flash-exp [shell_command_run, editor_update_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
fs/orangefs/orangefs-debugfs.c | 36 +++++++++++++---------------------
1 file changed, 14 insertions(+), 22 deletions(-)
diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c
index 9f94919a6bc6..6e2f9887eab4 100644
--- a/fs/orangefs/orangefs-debugfs.c
+++ b/fs/orangefs/orangefs-debugfs.c @@ -37,6 +37,7 @@
*/
#include <linux/debugfs.h>
#include <linux/slab.h>
+ #include <linux/seq_buf.h>
#include <linux/uaccess.h>
@@ -623,10 +624,10 @@ int orangefs_prepare_debugfs_help_string(int at_boot)
char * client_title = "Client Debug Keywords: \n " ;
char * kernel_title = "Kernel Debug Keywords: \n " ;
size_t string_size = DEBUG_HELP_STRING_SIZE ;
- size_t result_size ;
size_t i ;
char * new ;
int rc = - EINVAL ;
+ struct seq_buf s ;
gossip_debug ( GOSSIP_UTILS_DEBUG , "%s: start \n " , __func__ );
@@ -640,17 +641,14 @@ int orangefs_prepare_debugfs_help_string(int at_boot)
goto out ;
}
+ seq_buf_init ( & s , new , string_size );
+
/*
- * strlcat ( dst , src , size ) will append at most
- * "size - strlen(dst) - 1" bytes of src onto dst ,
- * null terminating the result , and return the total
- * length of the string it tried to create .
- *
* We ' ll just plow through here building our new debug
- * help string and let strlcat take care of assuring that
+ * help string and let seq_buf take care of assuring that
* dst doesn ' t overflow .
*/
- strlcat ( new , client_title , string_size );
+ seq_buf_puts ( & s , client_title );
if ( ! at_boot ) {
@@ -665,24 +663,18 @@ int orangefs_prepare_debugfs_help_string(int at_boot)
goto out ;
}
- for ( i = 0 ; i < cdm_element_count ; i ++ ) {
- strlcat ( new , " \t " , string_size );
- strlcat ( new , cdm_array [ i ]. keyword , string_size );
- strlcat ( new , " \n " , string_size );
- }
+ for ( i = 0 ; i < cdm_element_count ; i ++ )
+ seq_buf_printf ( & s , " \t %s \n " , cdm_array [ i ]. keyword );
}
- strlcat ( new , " \n " , string_size );
- strlcat ( new , kernel_title , string_size );
+ seq_buf_puts ( & s , " \n " );
+ seq_buf_puts ( & s , kernel_title );
- for ( i = 0 ; i < num_kmod_keyword_mask_map ; i ++ ) {
- strlcat ( new , " \t " , string_size );
- strlcat ( new , s_kmod_keyword_mask_map [ i ]. keyword , string_size );
- result_size = strlcat ( new , " \n " , string_size );
- }
+ for ( i = 0 ; i < num_kmod_keyword_mask_map ; i ++ )
+ seq_buf_printf ( & s , " \t %s \n " , s_kmod_keyword_mask_map [ i ]. keyword );
/* See if we tried to put too many bytes into "new"... */
- if ( result_size >= string_size ) {
+ if ( seq_buf_has_overflowed ( & s )) {
kfree ( new );
goto out ;
} @@ -692,7 +684,7 @@ int orangefs_prepare_debugfs_help_string(int at_boot)
} else {
mutex_lock ( & orangefs_help_file_lock );
memset ( debug_help_string , 0 , DEBUG_HELP_STRING_SIZE );
- strlcat ( debug_help_string , new , string_size );
+ strscpy ( debug_help_string , new , DEBUG_HELP_STRING_SIZE );
mutex_unlock ( & orangefs_help_file_lock );
kfree ( new );
} --
2.55.0.1032.g73a4cd73de-goog
samsung_banks_node_get() constructs each pin bank node name by copying
bank->name with strscpy() and appending the suffix with strlcat().
In preparation for removing the deprecated strlcat() API[1], format the
node name in a single snprintf() call, which preserves the existing
truncation check against sizeof(node_name).
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini:Pro [editor_update_file, make_kernel_build_single_file, checkpatch_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/pinctrl/samsung/pinctrl-samsung.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
index 5ecc9ed4c44d..0d639eec689c 100644
--- a/drivers/pinctrl/samsung/pinctrl-samsung.c
+++ b/drivers/pinctrl/samsung/pinctrl-samsung.c @@ -1155,8 +1155,7 @@ static void samsung_banks_node_get(struct device *dev, struct samsung_pinctrl_dr
bank = d -> pin_banks ;
for ( i = 0 ; i < d -> nr_banks ; ++ i , ++ bank ) {
- strscpy ( node_name , bank -> name , sizeof ( node_name ));
- len = strlcat ( node_name , suffix , sizeof ( node_name ));
+ len = snprintf ( node_name , sizeof ( node_name ), "%s%s" , bank -> name , suffix );
if ( len >= sizeof ( node_name )) {
dev_err ( dev , "Too long pin bank name '%s', ignoring \n " ,
bank -> name ); --
2.55.0.1032.g73a4cd73de-goog
bootcmdline_append() passes "max" (the maximum length of the source
string "s") as the destination buffer size argument to strlcat(). Because
strlcat() expects the total size of the destination buffer
(COMMAND_LINE_SIZE), it fails to append anything whenever "max" is smaller
than the current length of boot_command_line, and could overflow
boot_command_line if "max" exceeds COMMAND_LINE_SIZE.
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() calls with snprintf() using the "%.*s" precision specifier. This
bounds the read from "s" to at most "max" bytes while properly respecting
the remaining space in boot_command_line.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: SecurityEngineer:Gemini2.5Pro [editor_update_file, shell_command_run, make_kernel_build_single_file, test_runner_run_kunit_test]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
arch/mips/kernel/setup.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 1ae6d0c0e1d6..0d9c2137d675 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c @@ -518,13 +518,28 @@ static void __init check_kernel_sections_mem(void)
static void __init bootcmdline_append ( const char * s , size_t max )
{
+ size_t len ;
+ int prec ;
+
if ( ! s [ 0 ] || ! max )
return ;
- if ( boot_command_line [ 0 ])
- strlcat ( boot_command_line , " " , COMMAND_LINE_SIZE );
+ len = strlen ( boot_command_line );
+ if ( len >= COMMAND_LINE_SIZE - 1 )
+ return ;
- strlcat ( boot_command_line , s , max );
+ if ( len ) {
+ if ( COMMAND_LINE_SIZE - len < 3 )
+ return ;
+
+ prec = min_t ( size_t , max , COMMAND_LINE_SIZE - len - 2 );
+ snprintf ( boot_command_line + len , COMMAND_LINE_SIZE - len , " %.*s" ,
+ prec , s );
+ } else {
+ prec = min_t ( size_t , max , COMMAND_LINE_SIZE - 1 );
+ snprintf ( boot_command_line , COMMAND_LINE_SIZE , "%.*s" ,
+ prec , s );
+ }
}
#ifdef CONFIG_OF_EARLY_FLATTREE --
2.55.0.1032.g73a4cd73de-goog
bootcmdline_init() uses multiple strlcat() calls to append
init_command_line or CONFIG_CMDLINE to boot_command_line.
In preparation for removing the deprecated strlcat() API[1], initialize a
struct seq_buf with the existing contents of boot_command_line and use
seq_buf_puts() to append the command line fragments.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:1.0 [shell_command_run, editor_update_file, make_kernel_build_single_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
arch/loongarch/kernel/setup.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c
index 6fa4a22a58fd..826396f141b9 100644
--- a/arch/loongarch/kernel/setup.c
+++ b/arch/loongarch/kernel/setup.c @@ -33,6 +33,7 @@
#include <linux/of_address.h>
#include <linux/suspend.h>
#include <linux/swiotlb.h>
+ #include <linux/seq_buf.h>
#include <asm/addrspace.h>
#include <asm/alternative.h> @@ -305,6 +306,8 @@ static void __init fdt_setup(void)
static void __init bootcmdline_init ( char ** cmdline_p )
{
+ struct seq_buf s ;
+
/*
* If CONFIG_CMDLINE_FORCE is enabled then initializing the command line
* is trivial - we simply use the built - in command line unconditionally & @@ -315,6 +318,11 @@ static void __init bootcmdline_init(char **cmdline_p)
goto out ;
}
+ /* Initialize seq_buf pointing to boot_command_line */
+ s . buffer = boot_command_line ;
+ s . size = COMMAND_LINE_SIZE ;
+ s . len = strlen ( boot_command_line );
+
#ifdef CONFIG_OF_FLATTREE
/*
* If CONFIG_CMDLINE_BOOTLOADER is enabled and we are in FDT - based system , @@ -323,11 +331,11 @@ static void __init bootcmdline_init(char **cmdline_p)
* to boot_command_line .
*/
if ( initial_boot_params ) {
- if ( boot_command_line [ 0 ])
- strlcat ( boot_command_line , " " , COMMAND_LINE_SIZE );
+ if ( s . len )
+ seq_buf_puts ( & s , " " );
- if ( ! strstr ( boot_command_line , init_command_line ))
- strlcat ( boot_command_line , init_command_line , COMMAND_LINE_SIZE );
+ if ( ! strstr ( s . buffer , init_command_line ))
+ seq_buf_puts ( & s , init_command_line );
goto out ;
} @@ -338,14 +346,14 @@ static void __init bootcmdline_init(char **cmdline_p)
* CONFIG_CMDLINE_EXTEND is enabled .
*/
if ( IS_ENABLED ( CONFIG_CMDLINE_EXTEND ) && CONFIG_CMDLINE [ 0 ]) {
- strlcat ( boot_command_line , " " , COMMAND_LINE_SIZE );
- strlcat ( boot_command_line , CONFIG_CMDLINE , COMMAND_LINE_SIZE );
+ seq_buf_puts ( & s , " " );
+ seq_buf_puts ( & s , CONFIG_CMDLINE );
}
/*
* Use built - in command line if the bootloader command line is empty .
*/
- if ( IS_ENABLED ( CONFIG_CMDLINE_BOOTLOADER ) && ! boot_command_line [ 0 ])
+ if ( IS_ENABLED ( CONFIG_CMDLINE_BOOTLOADER ) && ! s . len )
strscpy ( boot_command_line , CONFIG_CMDLINE , COMMAND_LINE_SIZE );
out : --
2.55.0.1032.g73a4cd73de-goog
setup_cmdline() uses multiple strlcat() calls to conditionally append
default console and earlycon parameters to boot_command_line.
In preparation for removing the deprecated strlcat() API[1], initialize a
struct seq_buf with the existing boot_command_line contents and use
seq_buf_printf() to append the console parameters.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:Gemini-1.5-Pro [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
arch/parisc/kernel/setup.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c
index d3e17a7a8901..fa3efc82ad87 100644
--- a/arch/parisc/kernel/setup.c
+++ b/arch/parisc/kernel/setup.c @@ -17,6 +17,7 @@
#include <linux/init.h>
#include <linux/console.h>
#include <linux/seq_file.h>
+ #include <linux/seq_buf.h>
#define PCI_DEBUG
#include <linux/pci.h>
#undef PCI_DEBUG @@ -42,6 +43,7 @@ static char __initdata command_line[COMMAND_LINE_SIZE];
static void __init setup_cmdline ( char ** cmdline_p )
{
extern unsigned int boot_args [];
+ struct seq_buf s ;
char * p ;
* cmdline_p = command_line ; @@ -54,19 +56,21 @@ static void __init setup_cmdline(char **cmdline_p)
strscpy ( boot_command_line , ( char * ) __va ( boot_args [ 1 ]),
COMMAND_LINE_SIZE );
+ s . buffer = boot_command_line ;
+ s . size = COMMAND_LINE_SIZE ;
+ s . len = strlen ( boot_command_line );
+
/* autodetect console type (if not done by palo yet) */
p = boot_command_line ;
if ( ! str_has_prefix ( p , "console=" ) && ! strstr ( p , " console=" )) {
- strlcat ( p , " console=" , COMMAND_LINE_SIZE );
- if ( PAGE0 -> mem_cons . cl_class == CL_DUPLEX )
- strlcat ( p , "ttyS0" , COMMAND_LINE_SIZE );
- else
- strlcat ( p , "tty0" , COMMAND_LINE_SIZE );
+ seq_buf_printf ( & s , " console=%s" ,
+ PAGE0 -> mem_cons . cl_class == CL_DUPLEX ?
+ "ttyS0" : "tty0" );
}
/* default to use early console */
if ( ! strstr ( p , "earlycon" ))
- strlcat ( p , " earlycon=pdc" , COMMAND_LINE_SIZE );
+ seq_buf_printf ( & s , " earlycon=pdc" );
#ifdef CONFIG_BLK_DEV_INITRD
/* did palo pass us a ramdisk? */ --
2.55.0.1032.g73a4cd73de-goog
root_nfs_cat() computes the length of "dest" with strlen(), but then uses
up to two strlcat() calls to append a comma separator and "src",
rescanning "dest" each time.
In preparation for removing the deprecated strlcat() API[1], use the
already-computed length and a single snprintf() call to append the
optional comma and "src", returning -1 if the result is truncated.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:Claude-3.5-Sonnet [editor_update_file, make_kernel_build_single_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
fs/nfs/nfsroot.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c
index 432612d22437..a28208414aec 100644
--- a/fs/nfs/nfsroot.c
+++ b/fs/nfs/nfsroot.c @@ -173,12 +173,15 @@ static int __init root_nfs_cat(char *dest, const char *src,
const size_t destlen )
{
size_t len = strlen ( dest );
+ int ret ;
- if ( len && dest [ len - 1 ] != ',' )
- if ( strlcat ( dest , "," , destlen ) >= destlen )
- return -1 ;
+ if ( len >= destlen )
+ return -1 ;
- if ( strlcat ( dest , src , destlen ) >= destlen )
+ ret = snprintf ( dest + len , destlen - len , "%s%s" ,
+ ( len && dest [ len - 1 ] != ',' ) ? "," : "" , src );
+
+ if ( ret < 0 || ret >= destlen - len )
return -1 ;
return 0 ;
} --
2.55.0.1032.g73a4cd73de-goog
resume_triggers2string() builds a space-separated string of active resume
trigger names using a series of conditional strlcat() calls.
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() calls with struct seq_buf and seq_buf_puts().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:1.0 [editor_update_file, make_kernel_build_single_file]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/net/wireless/ath/wil6210/wmi.c | 38 ++++++++++++++------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index 479b2418ca34..fcc9e9eb5732 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c @@ -7,6 +7,7 @@
#include <linux/moduleparam.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
+ #include <linux/seq_buf.h>
#include "wil6210.h"
#include "txrx.h" @@ -3162,27 +3163,30 @@ int wmi_suspend(struct wil6210_priv *wil)
static void resume_triggers2string ( u32 triggers , char * string , int str_size )
{
- string [ 0 ] = '\0' ;
+ struct seq_buf s ;
+
+ seq_buf_init ( & s , string , str_size );
if ( ! triggers ) {
- strlcat ( string , " UNKNOWN" , str_size );
- return ;
+ seq_buf_puts ( & s , " UNKNOWN" );
+ } else {
+ if ( triggers & WMI_RESUME_TRIGGER_HOST )
+ seq_buf_puts ( & s , " HOST" );
+
+ if ( triggers & WMI_RESUME_TRIGGER_UCAST_RX )
+ seq_buf_puts ( & s , " UCAST_RX" );
+
+ if ( triggers & WMI_RESUME_TRIGGER_BCAST_RX )
+ seq_buf_puts ( & s , " BCAST_RX" );
+
+ if ( triggers & WMI_RESUME_TRIGGER_WMI_EVT )
+ seq_buf_puts ( & s , " WMI_EVT" );
+
+ if ( triggers & WMI_RESUME_TRIGGER_DISCONNECT )
+ seq_buf_puts ( & s , " DISCONNECT" );
}
- if ( triggers & WMI_RESUME_TRIGGER_HOST )
- strlcat ( string , " HOST" , str_size );
-
- if ( triggers & WMI_RESUME_TRIGGER_UCAST_RX )
- strlcat ( string , " UCAST_RX" , str_size );
-
- if ( triggers & WMI_RESUME_TRIGGER_BCAST_RX )
- strlcat ( string , " BCAST_RX" , str_size );
-
- if ( triggers & WMI_RESUME_TRIGGER_WMI_EVT )
- strlcat ( string , " WMI_EVT" , str_size );
-
- if ( triggers & WMI_RESUME_TRIGGER_DISCONNECT )
- strlcat ( string , " DISCONNECT" , str_size );
+ seq_buf_str ( & s );
}
int wmi_resume ( struct wil6210_priv * wil ) --
2.55.0.1032.g73a4cd73de-goog
si2165_probe() constructs the frontend name by appending the chip name and
supported delivery system suffixes (" DVB-T", " DVB-C") to
state->fe.ops.info.name using multiple strlcat() calls.
In preparation for removing the deprecated strlcat() API[1], format the
complete frontend name in a single snprintf() call.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Developer:Gemini [editor_update_file, make_kernel_build_single_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/media/dvb-frontends/si2165.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/drivers/media/dvb-frontends/si2165.c b/drivers/media/dvb-frontends/si2165.c
index f1241b63aa5c..bd15eb58fc84 100644
--- a/drivers/media/dvb-frontends/si2165.c
+++ b/drivers/media/dvb-frontends/si2165.c @@ -1243,20 +1243,17 @@ static int si2165_probe(struct i2c_client *client)
chip_name , rev_char , state -> chip_type ,
state -> chip_revcode );
- strlcat ( state -> fe . ops . info . name , chip_name ,
- sizeof ( state -> fe . ops . info . name ));
+ snprintf ( state -> fe . ops . info . name , sizeof ( state -> fe . ops . info . name ),
+ "Silicon Labs %s%s%s" ,
+ chip_name ,
+ state -> has_dvbt ? " DVB-T" : "" ,
+ state -> has_dvbc ? " DVB-C" : "" );
n = 0 ;
- if ( state -> has_dvbt ) {
+ if ( state -> has_dvbt )
state -> fe . ops . delsys [ n ++ ] = SYS_DVBT ;
- strlcat ( state -> fe . ops . info . name , " DVB-T" ,
- sizeof ( state -> fe . ops . info . name ));
- }
- if ( state -> has_dvbc ) {
+ if ( state -> has_dvbc )
state -> fe . ops . delsys [ n ++ ] = SYS_DVBC_ANNEX_A ;
- strlcat ( state -> fe . ops . info . name , " DVB-C" ,
- sizeof ( state -> fe . ops . info . name ));
- }
/* return fe pointer */
* pdata -> fe = & state -> fe ; --
2.55.0.1032.g73a4cd73de-goog
The threaded ISR handlers (thunderx_ocx_com_threaded_isr(),
thunderx_ocx_lnk_threaded_isr(), and thunderx_l2c_threaded_isr()) build
multi-line error reports by formatting register details into a scratch
buffer and appending them to "msg" with strlcat().
In preparation for removing the deprecated strlcat() API[1], refactor the
ISR handlers to construct error messages using struct seq_buf.
Additionally, fix two bugs in decode_register(): initialize "str[0] = '\0'"
so callers do not append stale buffer contents when no error bits match,
and stop iterating if snprintf() truncates the buffer to avoid
underflowing the remaining "size" counter.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: AI:Claude-3-5-Sonnet [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/edac/thunderx_edac.c | 64 ++++++++++++++++++++++--------------
1 file changed, 39 insertions(+), 25 deletions(-)
diff --git a/drivers/edac/thunderx_edac.c b/drivers/edac/thunderx_edac.c
index e7c335ca0c36..4e3781815b6d 100644
--- a/drivers/edac/thunderx_edac.c
+++ b/drivers/edac/thunderx_edac.c @@ -20,6 +20,7 @@
#include <linux/atomic.h>
#include <linux/bitfield.h>
#include <linux/circ_buf.h>
+ #include <linux/seq_buf.h>
#include <asm/page.h>
@@ -47,12 +48,17 @@ static void decode_register(char *str, size_t size,
{
int ret = 0 ;
+ if ( size > 0 )
+ str [ 0 ] = '\0' ;
+
while ( descr -> type && descr -> mask && descr -> descr ) {
if ( reg & descr -> mask ) {
ret = snprintf ( str , size , " \n\t %s, %s" ,
descr -> type == ERR_CORRECTED ?
"Corrected" : "Uncorrected" ,
descr -> descr );
+ if ( ret < 0 || ret >= size )
+ break ;
str += ret ;
size -= ret ;
} @@ -1115,35 +1121,37 @@ static irqreturn_t thunderx_ocx_com_threaded_isr(int irq, void *irq_id)
while ( CIRC_CNT ( ocx -> com_ring_head , ocx -> com_ring_tail ,
ARRAY_SIZE ( ocx -> com_err_ctx ))) {
+ struct seq_buf s ;
+
tail = ring_pos ( ocx -> com_ring_tail ,
ARRAY_SIZE ( ocx -> com_err_ctx ));
ctx = & ocx -> com_err_ctx [ tail ];
- snprintf ( msg , OCX_MESSAGE_SIZE , "%s: OCX_COM_INT: %016llx" ,
- ocx -> edac_dev -> ctl_name , ctx -> reg_com_int );
+ seq_buf_init ( & s , msg , OCX_MESSAGE_SIZE );
+
+ seq_buf_printf ( & s , "%s: OCX_COM_INT: %016llx" ,
+ ocx -> edac_dev -> ctl_name , ctx -> reg_com_int );
decode_register ( other , OCX_OTHER_SIZE ,
ocx_com_errors , ctx -> reg_com_int );
- strlcat ( msg , other , OCX_MESSAGE_SIZE );
+ seq_buf_puts ( & s , other );
for ( lane = 0 ; lane < OCX_RX_LANES ; lane ++ )
if ( ctx -> reg_com_int & BIT ( lane )) {
- snprintf ( other , OCX_OTHER_SIZE ,
- " \n\t OCX_LNE_INT[%02d]: %016llx OCX_LNE_STAT11[%02d]: %016llx" ,
- lane , ctx -> reg_lane_int [ lane ],
- lane , ctx -> reg_lane_stat11 [ lane ]);
-
- strlcat ( msg , other , OCX_MESSAGE_SIZE );
+ seq_buf_printf ( & s ,
+ " \n\t OCX_LNE_INT[%02d]: %016llx OCX_LNE_STAT11[%02d]: %016llx" ,
+ lane , ctx -> reg_lane_int [ lane ],
+ lane , ctx -> reg_lane_stat11 [ lane ]);
decode_register ( other , OCX_OTHER_SIZE ,
ocx_lane_errors ,
ctx -> reg_lane_int [ lane ]);
- strlcat ( msg , other , OCX_MESSAGE_SIZE );
+ seq_buf_puts ( & s , other );
}
if ( ctx -> reg_com_int & OCX_COM_INT_CE )
- edac_device_handle_ce ( ocx -> edac_dev , 0 , 0 , msg );
+ edac_device_handle_ce ( ocx -> edac_dev , 0 , 0 , seq_buf_str ( & s ));
ocx -> com_ring_tail ++ ;
} @@ -1196,25 +1204,28 @@ static irqreturn_t thunderx_ocx_lnk_threaded_isr(int irq, void *irq_id)
while ( CIRC_CNT ( ocx -> link_ring_head , ocx -> link_ring_tail ,
ARRAY_SIZE ( ocx -> link_err_ctx ))) {
+ struct seq_buf s ;
+
tail = ring_pos ( ocx -> link_ring_head ,
ARRAY_SIZE ( ocx -> link_err_ctx ));
ctx = & ocx -> link_err_ctx [ tail ];
- snprintf ( msg , OCX_MESSAGE_SIZE ,
- "%s: OCX_COM_LINK_INT[%d]: %016llx" ,
- ocx -> edac_dev -> ctl_name ,
- ctx -> link , ctx -> reg_com_link_int );
+ seq_buf_init ( & s , msg , OCX_MESSAGE_SIZE );
+
+ seq_buf_printf ( & s , "%s: OCX_COM_LINK_INT[%d]: %016llx" ,
+ ocx -> edac_dev -> ctl_name ,
+ ctx -> link , ctx -> reg_com_link_int );
decode_register ( other , OCX_OTHER_SIZE ,
ocx_com_link_errors , ctx -> reg_com_link_int );
- strlcat ( msg , other , OCX_MESSAGE_SIZE );
+ seq_buf_puts ( & s , other );
if ( ctx -> reg_com_link_int & OCX_COM_LINK_INT_UE )
- edac_device_handle_ue ( ocx -> edac_dev , 0 , 0 , msg );
+ edac_device_handle_ue ( ocx -> edac_dev , 0 , 0 , seq_buf_str ( & s ));
else if ( ctx -> reg_com_link_int & OCX_COM_LINK_INT_CE )
- edac_device_handle_ce ( ocx -> edac_dev , 0 , 0 , msg );
+ edac_device_handle_ce ( ocx -> edac_dev , 0 , 0 , seq_buf_str ( & s ));
ocx -> link_ring_tail ++ ;
} @@ -1880,22 +1891,25 @@ static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id)
while ( CIRC_CNT ( l2c -> ring_head , l2c -> ring_tail ,
ARRAY_SIZE ( l2c -> err_ctx ))) {
+ struct seq_buf s ;
+
tail = ring_pos ( l2c -> ring_tail , ARRAY_SIZE ( l2c -> err_ctx ));
ctx = & l2c -> err_ctx [ tail ];
- snprintf ( msg , L2C_MESSAGE_SIZE ,
- "%s: %s: %016llx, %s: %016llx" ,
- l2c -> edac_dev -> ctl_name , reg_int_name , ctx -> reg_int ,
- ctx -> reg_ext_name , ctx -> reg_ext );
+ seq_buf_init ( & s , msg , L2C_MESSAGE_SIZE );
+
+ seq_buf_printf ( & s , "%s: %s: %016llx, %s: %016llx" ,
+ l2c -> edac_dev -> ctl_name , reg_int_name , ctx -> reg_int ,
+ ctx -> reg_ext_name , ctx -> reg_ext );
decode_register ( other , L2C_OTHER_SIZE , l2_errors , ctx -> reg_int );
- strlcat ( msg , other , L2C_MESSAGE_SIZE );
+ seq_buf_puts ( & s , other );
if ( ctx -> reg_int & mask_ue )
- edac_device_handle_ue ( l2c -> edac_dev , 0 , 0 , msg );
+ edac_device_handle_ue ( l2c -> edac_dev , 0 , 0 , seq_buf_str ( & s ));
else if ( ctx -> reg_int & mask_ce )
- edac_device_handle_ce ( l2c -> edac_dev , 0 , 0 , msg );
+ edac_device_handle_ce ( l2c -> edac_dev , 0 , 0 , seq_buf_str ( & s ));
l2c -> ring_tail ++ ;
} --
2.55.0.1032.g73a4cd73de-goog
synusb_probe() constructs the device name and physical path using a mix of
strscpy(), strlcat(), and snprintf().
In preparation for removing the deprecated strlcat() API[1], use struct
seq_buf to incrementally build synusb->name, and format synusb->phys with
snprintf() after generating the USB path.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini:1.5-Pro-002 [editor_update_file, make_kernel_build_single_file, test_runner_run_kunit_test]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/input/mouse/synaptics_usb.c | 29 +++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/drivers/input/mouse/synaptics_usb.c b/drivers/input/mouse/synaptics_usb.c
index 880a0c79148c..d13d2d6202ee 100644
--- a/drivers/input/mouse/synaptics_usb.c
+++ b/drivers/input/mouse/synaptics_usb.c @@ -41,6 +41,7 @@
#include <linux/usb.h>
#include <linux/input.h>
#include <linux/usb/input.h>
+ #include <linux/seq_buf.h>
#define USB_VENDOR_ID_SYNAPTICS 0x06cb
#define USB_DEVICE_ID_SYNAPTICS_TP 0x0001 /* Synaptics USB TouchPad */ @@ -278,6 +279,8 @@ static int synusb_probe(struct usb_interface *intf,
struct input_dev * input_dev ;
unsigned int intf_num = intf -> cur_altsetting -> desc . bInterfaceNumber ;
unsigned int altsetting = min ( intf -> num_altsetting , 1U );
+ struct seq_buf s ;
+ char path [ 64 ];
int error ;
error = usb_set_interface ( udev , intf_num , altsetting ); @@ -334,27 +337,29 @@ static int synusb_probe(struct usb_interface *intf,
ep -> bInterval );
synusb -> urb -> transfer_flags |= URB_NO_TRANSFER_DMA_MAP ;
+ seq_buf_init ( & s , synusb -> name , sizeof ( synusb -> name ));
+
if ( udev -> manufacturer )
- strscpy ( synusb -> name , udev -> manufacturer ,
- sizeof ( synusb -> name ));
+ seq_buf_puts ( & s , udev -> manufacturer );
if ( udev -> product ) {
if ( udev -> manufacturer )
- strlcat ( synusb -> name , " " , sizeof ( synusb -> name ));
- strlcat ( synusb -> name , udev -> product , sizeof ( synusb -> name ));
+ seq_buf_puts ( & s , " " );
+ seq_buf_puts ( & s , udev -> product );
}
- if ( ! strlen ( synusb -> name ))
- snprintf ( synusb -> name , sizeof ( synusb -> name ),
- "USB Synaptics Device %04x:%04x" ,
- le16_to_cpu ( udev -> descriptor . idVendor ),
- le16_to_cpu ( udev -> descriptor . idProduct ));
+ if ( ! seq_buf_used ( & s ))
+ seq_buf_printf ( & s , "USB Synaptics Device %04x:%04x" ,
+ le16_to_cpu ( udev -> descriptor . idVendor ),
+ le16_to_cpu ( udev -> descriptor . idProduct ));
if ( synusb -> flags & SYNUSB_STICK )
- strlcat ( synusb -> name , " (Stick)" , sizeof ( synusb -> name ));
+ seq_buf_puts ( & s , " (Stick)" );
- usb_make_path ( udev , synusb -> phys , sizeof ( synusb -> phys ));
- strlcat ( synusb -> phys , "/input0" , sizeof ( synusb -> phys ));
+ seq_buf_str ( & s );
+
+ usb_make_path ( udev , path , sizeof ( path ));
+ snprintf ( synusb -> phys , sizeof ( synusb -> phys ), "%s/input0" , path );
input_dev -> name = synusb -> name ;
input_dev -> phys = synusb -> phys ; --
2.55.0.1032.g73a4cd73de-goog
thunderx_l2c_threaded_isr() computes "tail" and "ctx" once before entering
the loop that drains the L2C error ring, and never updates them on
subsequent iterations. When multiple errors are queued, every iteration
reports the first ring entry rather than advancing through the ring,
causing subsequent hardware errors in a batch to go unreported.
Recompute "tail" and "ctx" at the start of each loop iteration, matching
the sibling thunderx_ocx_com_threaded_isr() and
thunderx_ocx_lnk_threaded_isr() handlers.
Fixes: 41003396f932 ("EDAC, thunderx: Add Cavium ThunderX EDAC driver")
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/edac/thunderx_edac.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/edac/thunderx_edac.c b/drivers/edac/thunderx_edac.c
index 9c0a1e48f96f..e7c335ca0c36 100644
--- a/drivers/edac/thunderx_edac.c
+++ b/drivers/edac/thunderx_edac.c @@ -1880,6 +1880,9 @@ static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id)
while ( CIRC_CNT ( l2c -> ring_head , l2c -> ring_tail ,
ARRAY_SIZE ( l2c -> err_ctx ))) {
+ tail = ring_pos ( l2c -> ring_tail , ARRAY_SIZE ( l2c -> err_ctx ));
+ ctx = & l2c -> err_ctx [ tail ];
+
snprintf ( msg , L2C_MESSAGE_SIZE ,
"%s: %s: %016llx, %s: %016llx" ,
l2c -> edac_dev -> ctl_name , reg_int_name , ctx -> reg_int , --
2.55.0.1032.g73a4cd73de-goog
control_read() builds a list of supported SR-IOV VF control commands in a
stack buffer by calling strlcat() twice per command in a loop.
In preparation for removing the deprecated strlcat() API[1], use struct
seq_buf and seq_buf_printf() to format each command line and pass
seq_buf_used() directly to simple_read_from_buffer().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoT-Agent:Gemini-2.0-Flash [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
index 0f242db775e1..5db7fc067c4d 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c @@ -4,6 +4,7 @@
*/
#include <linux/debugfs.h>
+ #include <linux/seq_buf.h>
#include <drm/drm_print.h>
#include <drm/drm_debugfs.h> @@ -663,15 +664,15 @@ static ssize_t control_write(struct file *file, const char __user *buf, size_t c
static ssize_t control_read ( struct file * file , char __user * buf , size_t count , loff_t * ppos )
{
char help [ 128 ];
+ struct seq_buf s ;
size_t n ;
- help [ 0 ] = '\0' ;
+ seq_buf_init ( & s , help , sizeof ( help ));
for ( n = 0 ; n < ARRAY_SIZE ( control_cmds ); n ++ ) {
- strlcat ( help , control_cmds [ n ]. cmd , sizeof ( help ));
- strlcat ( help , " \n " , sizeof ( help ));
+ seq_buf_printf ( & s , "%s \n " , control_cmds [ n ]. cmd );
}
- return simple_read_from_buffer ( buf , count , ppos , help , strlen ( help ));
+ return simple_read_from_buffer ( buf , count , ppos , help , seq_buf_used ( & s ));
}
static const struct file_operations control_ops = { --
2.55.0.1032.g73a4cd73de-goog
Similar to control_read(), sched_group_engines_read() constructs a
space-separated list of hardware engine names in a stack buffer using
repeated strlcat() calls inside a loop.
In preparation for removing the deprecated strlcat() API[1], refactor
sched_group_engines_read() to use struct seq_buf and seq_buf_printf().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Developer:Gemini [editor_update_file, make_kernel_build_single_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
index 5db7fc067c4d..548a50f74422 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c @@ -377,8 +377,10 @@ static ssize_t sched_group_engines_read(struct file *file, char __user *buf,
struct xe_hw_engine * hwe ;
enum xe_hw_engine_id id ;
char engines [ 128 ];
+ struct seq_buf s ;
+ const char * s_str ;
- engines [ 0 ] = '\0' ;
+ seq_buf_init ( & s , engines , sizeof ( engines ));
if ( group < num_groups ) {
for_each_hw_engine ( hwe , gt , id ) { @@ -386,15 +388,14 @@ static ssize_t sched_group_engines_read(struct file *file, char __user *buf,
u16 guc_logical_instance = xe_hwe_guc_logical_instance ( hwe );
u32 mask = groups [ group ]. engines [ guc_class ];
- if ( mask & BIT ( guc_logical_instance )) {
- strlcat ( engines , hwe -> name , sizeof ( engines ));
- strlcat ( engines , " " , sizeof ( engines ));
- }
+ if ( mask & BIT ( guc_logical_instance ))
+ seq_buf_printf ( & s , "%s " , hwe -> name );
}
- strlcat ( engines , " \n " , sizeof ( engines ));
+ seq_buf_puts ( & s , " \n " );
}
- return simple_read_from_buffer ( buf , count , ppos , engines , strlen ( engines ));
+ s_str = seq_buf_str ( & s );
+ return simple_read_from_buffer ( buf , count , ppos , s_str , strlen ( s_str ));
}
static const struct file_operations sched_group_engines_fops = { --
2.55.0.1032.g73a4cd73de-goog
When CONFIG_CMDLINE_BOOL is enabled without CONFIG_CMDLINE_OVERRIDE,
setup_arch() appends boot_command_line to builtin_cmdline using two
strlcat() calls before copying the result back to boot_command_line.
In preparation for removing the deprecated strlcat() API[1], format the
combined command line into a temporary buffer using a single snprintf()
call and copy the result to both builtin_cmdline and boot_command_line.
Using a temporary buffer avoids undefined behavior from passing overlapping
source and destination buffers to snprintf().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Developer:Gemini_2.5_Pro [editor_update_file, make_kernel_build_single_file, checkpatch_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
arch/x86/kernel/setup.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index cda6adb9f69c..c40e0edd7c13 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c @@ -916,9 +916,11 @@ void __init setup_arch(char **cmdline_p)
#else
if ( builtin_cmdline [ 0 ]) {
/* append boot loader cmdline to builtin */
- strlcat ( builtin_cmdline , " " , COMMAND_LINE_SIZE );
- strlcat ( builtin_cmdline , boot_command_line , COMMAND_LINE_SIZE );
- strscpy ( boot_command_line , builtin_cmdline , COMMAND_LINE_SIZE );
+ char tmp [ COMMAND_LINE_SIZE ];
+
+ snprintf ( tmp , COMMAND_LINE_SIZE , "%s %s" , builtin_cmdline , boot_command_line );
+ strscpy ( builtin_cmdline , tmp , COMMAND_LINE_SIZE );
+ strscpy ( boot_command_line , tmp , COMMAND_LINE_SIZE );
}
#endif
builtin_cmdline_added = true ; --
2.55.0.1032.g73a4cd73de-goog
On Tue, 2026-09-15 at 08:18 +0000, Bill Wendling wrote: quoted hunk rpc_sockaddr2uaddr() formats the IP address into "addrbuf", formats the
port into a temporary "portbuf" buffer with snprintf(), and then appends
"portbuf" to "addrbuf" using strlcat().
In preparation for removing the deprecated strlcat() API[1], capture the
length returned by rpc_ntop4() and rpc_ntop6_noscopeid() and format the
port directly onto the end of "addrbuf" with snprintf(). This eliminates
the strlcat() call and the temporary "portbuf" buffer.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: CoPilot:3.5-sonnet [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
net/sunrpc/addr.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/net/sunrpc/addr.c b/net/sunrpc/addr.c
index 97ff11973c49..a1e4173e5a53 100644
--- a/net/sunrpc/addr.c
+++ b/net/sunrpc/addr.c @@ -264,18 +264,20 @@ EXPORT_SYMBOL_GPL(rpc_pton);
*/
char * rpc_sockaddr2uaddr ( const struct sockaddr * sap , gfp_t gfp_flags )
{
- char portbuf [ RPCBIND_MAXUADDRPLEN ];
char addrbuf [ RPCBIND_MAXUADDRLEN ];
unsigned short port ;
+ size_t len ;
switch ( sap -> sa_family ) {
case AF_INET :
- if ( rpc_ntop4 ( sap , addrbuf , sizeof ( addrbuf )) == 0 )
+ len = rpc_ntop4 ( sap , addrbuf , sizeof ( addrbuf ));
+ if ( len == 0 || len >= sizeof ( addrbuf ))
return NULL ;
port = ntohs ((( struct sockaddr_in * ) sap ) -> sin_port );
break ;
case AF_INET6 :
- if ( rpc_ntop6_noscopeid ( sap , addrbuf , sizeof ( addrbuf )) == 0 )
+ len = rpc_ntop6_noscopeid ( sap , addrbuf , sizeof ( addrbuf ));
+ if ( len == 0 || len >= sizeof ( addrbuf ))
return NULL ;
port = ntohs ((( struct sockaddr_in6 * ) sap ) -> sin6_port );
break ; @@ -283,11 +285,8 @@ char *rpc_sockaddr2uaddr(const struct sockaddr *sap, gfp_t gfp_flags)
return NULL ;
}
- if ( snprintf ( portbuf , sizeof ( portbuf ),
- ".%u.%u" , port >> 8 , port & 0xff ) >= ( int ) sizeof ( portbuf ))
- return NULL ;
-
- if ( strlcat ( addrbuf , portbuf , sizeof ( addrbuf )) >= sizeof ( addrbuf ))
+ if ( snprintf ( addrbuf + len , sizeof ( addrbuf ) - len ,
+ ".%u.%u" , port >> 8 , port & 0xff ) >= sizeof ( addrbuf ) - len )
return NULL ;
return kstrdup ( addrbuf , gfp_flags ); @@ -352,3 +351,4 @@ size_t rpc_uaddr2sockaddr(struct net *net, const char *uaddr,
return 0 ;
}
EXPORT_SYMBOL_GPL ( rpc_uaddr2sockaddr );
+
The last blank line here is not needed. The rest looks fine though.
Reviewed-by: Jeff Layton <jlayton@kernel.org>
On Tue, 15 Sep 2026 10:18:17 +0200,
Bill Wendling wrote:
strlcat() is deprecated: like strcat(), it requires re-scanning the
destination string from the beginning on every call, which is O(n^2)
when used to build up a string incrementally, and its truncation
behavior is easy to get wrong.
... but what many of your patches do is to replace strlcat() with
open-codes, which is more error-prone and easier to get wrong than
a single strlcat() call.
See:
https://github.com/KSPP/linux/issues/370
It's clear that strlcat() isn't perfect and sometimes inefficient.
But blindly deprecating without providing a good alternative doesn't
sound like a right approach to me.
thanks,
Takashi
On Tue, Sep 15, 2026 at 08:18:27AM +0000, Bill Wendling wrote: When CONFIG_CMDLINE_EXTEND is enabled, early_init_dt_scan_chosen() uses
two strlcat() calls to append a space and CONFIG_CMDLINE to the command
line buffer.
In preparation for removing the deprecated strlcat() API[1], replace the
strlcat() calls with a single snprintf() call using the existing string
length.
Additionally, check for a NULL initial_boot_params pointer and jump to
"handle_cmdline" so that CONFIG_CMDLINE handling still occurs without
dereferencing a NULL FDT pointer in fdt_path_offset().
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Assistant:Claude-3.5-Sonnet [editor_update_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
--- quoted hunk diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index a64afc3ded3d..311021a83f03 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c @@ -1095,6 +1095,9 @@ int __init early_init_dt_scan_chosen(char *cmdline)
const void * rng_seed ;
const void * fdt = initial_boot_params ;
+ if ( ! fdt )
+ goto handle_cmdline ;
+
node = fdt_path_offset ( fdt , "/chosen" );
if ( node < 0 )
node = fdt_path_offset ( fdt , "/chosen@0" ); @@ -1133,8 +1136,12 @@ int __init early_init_dt_scan_chosen(char *cmdline)
*/
#ifdef CONFIG_CMDLINE
#if defined(CONFIG_CMDLINE_EXTEND)
- strlcat ( cmdline , " " , COMMAND_LINE_SIZE );
- strlcat ( cmdline , CONFIG_CMDLINE , COMMAND_LINE_SIZE );
+ {
No need for brackets.
+ size_t len = strlen(cmdline);
+
+ if (len < COMMAND_LINE_SIZE)
+ snprintf(cmdline + len, COMMAND_LINE_SIZE - len, " %s", CONFIG_CMDLINE);
+ }
#elif defined(CONFIG_CMDLINE_FORCE)
strscpy(cmdline, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
#else
--
2.55.0.1032.g73a4cd73de-goog
On Tue, Sep 15, 2026 at 08:18:17AM +0000, Bill Wendling wrote: strlcat() is deprecated: like strcat(), it requires re-scanning the
destination string from the beginning on every call, which is O(n^2)
when used to build up a string incrementally, and its truncation
behavior is easy to get wrong. See:
https://github.com/KSPP/linux/issues/370
This series removes the remaining strlcat() call sites in the tree
(plus the one inside fortify-string.h's strcat() implementation
itself), replacing each with snprintf(), scnprintf(), or the seq_buf()
API, whichever best fits the surrounding code.
Thanks for tackling this!
A few global notes:
- This series almost certainly needs to be sent as separate single
patches to each subsystem maintainer (rather than a giant CC list).
- As others noted already, we don't want to do anything as just an
open-coded strlen/sprintf; this doesn't gain us anything. If we can't
use seq_buf or some other solution, we need to figure out what we _can_
do for a given use.
- There are some collisions with other in-flight patches, e.g. Mariia's[1]
- The "Assisted-by:" trailer doesn't need the level of detail you've
got, which changed recently[2]. Now the desired trailer would just be:
Assisted-by: LLM
- Please avoid including the Cc list in the email body (above or below
the "---" line), as it ends up being redundant.
I'll go look through the individual patches...
-Kees
[1] https://lore.kernel.org/all/27956255dde39f58d73a7b51cb53cbe3d7804f54.1786411026.git.mariianikitash@google.com/
[2] https://git.kernel.org/linus/816d9992d9ed ("coding-assistants: simplify attribution")
--
Kees Cook
On Tue, Sep 15, 2026 at 08:18:44AM +0000, Bill Wendling wrote: quoted hunk diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
index 0f242db775e1..5db7fc067c4d 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c @@ -4,6 +4,7 @@
*/
#include <linux/debugfs.h>
+ #include <linux/seq_buf.h>
#include <drm/drm_print.h>
#include <drm/drm_debugfs.h> @@ -663,15 +664,15 @@ static ssize_t control_write(struct file *file, const char __user *buf, size_t c
static ssize_t control_read ( struct file * file , char __user * buf , size_t count , loff_t * ppos )
{
char help [ 128 ];
+ struct seq_buf s ;
size_t n ;
- help [ 0 ] = '\0' ;
+ seq_buf_init ( & s , help , sizeof ( help ));
for ( n = 0 ; n < ARRAY_SIZE ( control_cmds ); n ++ ) {
- strlcat ( help , control_cmds [ n ]. cmd , sizeof ( help ));
- strlcat ( help , " \n " , sizeof ( help ));
+ seq_buf_printf ( & s , "%s \n " , control_cmds [ n ]. cmd );
}
Yay seq_buf! I would tweak the 3 init stack variable lines into just
using the single DECLARE_SEQ_BUF:
DECLARE_SEQ_BUF(s, 128);
- return simple_read_from_buffer(buf, count, ppos, help, strlen(help));
+ return simple_read_from_buffer(buf, count, ppos, help, seq_buf_used(&s));
seq_buf_used() isn't correct in the case of full-buffer use. e.g. if
the help buffer ends up filled with 127 chars and a NUL terminator,
seq_buf_used() returns 128, but you want 127 here. Using strlen() ends up
being redundant, though. I think we need to add seq_buf_strlen() which
handles the same logic that seq_buf_str() does.
-Kees
--
Kees Cook
On Tue, Sep 15, 2026 at 08:18:45AM +0000, Bill Wendling wrote: quoted hunk diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
This is the same file touched as
https://lore.kernel.org/all/20260915081910.4142719-28-morbo@google.com/
and doing the same thing, roughly? I think it'd be best to combine
these, especially since one depends on the other's addition of seq_buf.h
quoted hunk index 5db7fc067c4d..548a50f74422 100644 --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c @@ -377,8 +377,10 @@ static ssize_t sched_group_engines_read(struct file *file, char __user *buf,
struct xe_hw_engine * hwe ;
enum xe_hw_engine_id id ;
char engines [ 128 ];
+ struct seq_buf s ;
+ const char * s_str ;
- engines [ 0 ] = '\0' ;
+ seq_buf_init ( & s , engines , sizeof ( engines ));
As with the others, DECLARE_SEQ_BUF should be used.
quoted hunk if (group < num_groups) {
for_each_hw_engine(hwe, gt, id) { @@ -386,15 +388,14 @@ static ssize_t sched_group_engines_read(struct file *file, char __user *buf,
u16 guc_logical_instance = xe_hwe_guc_logical_instance(hwe);
u32 mask = groups[group].engines[guc_class];
- if (mask & BIT(guc_logical_instance)) {
- strlcat(engines, hwe->name, sizeof(engines));
- strlcat(engines, " ", sizeof(engines));
- }
+ if (mask & BIT(guc_logical_instance))
+ seq_buf_printf(&s, "%s ", hwe->name);
}
- strlcat(engines, "\n", sizeof(engines));
+ seq_buf_puts(&s, "\n");
}
- return simple_read_from_buffer(buf, count, ppos, engines, strlen(engines));
+ s_str = seq_buf_str(&s);
+ return simple_read_from_buffer(buf, count, ppos, s_str, strlen(s_str));
While this is the correct length, it does illustrate why I think we need
a new seq_buf helper to get the strlen result detected from NUL
termination like seq_buf_str().
-Kees
--
Kees Cook
On Tue, Sep 15, 2026 at 08:18:18AM +0000, Bill Wendling wrote: quoted hunk --- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c @@ -1850,10 +1850,12 @@ void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name,
pid = look_for_codec_id ( snd_ac97_codec_ids , id );
if ( pid ) {
- strlcat ( name , " " , maxlen );
- strlcat ( name , pid -> name , maxlen );
+ int l = strlen ( name );
+
if ( pid -> mask != 0xffffffff )
- sprintf ( name + strlen ( name ), " rev %u" , id & ~ pid -> mask );
+ snprintf ( name + l , maxlen - l , " %s rev %u" , pid -> name , id & ~ pid -> mask );
+ else
+ snprintf ( name + l , maxlen - l , " %s" , pid -> name );
if ( ac97 && pid -> patch ) {
if (( modem && ( pid -> flags & AC97_MODEM_PATCH )) ||
( ! modem && ! ( pid -> flags & AC97_MODEM_PATCH ))) @@ -1861,6 +1863,7 @@ void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name,
}
} else {
int l = strlen ( name );
+
snprintf ( name + l , maxlen - l , " id %x" , id & 0xff );
}
}
I'd rather not open-code the length math here. Can't we use seq_buf()
instead?
--
Kees Cook
On Tue, Sep 15, 2026 at 08:18:38AM +0000, Bill Wendling wrote: fs/nfs/nfsroot.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
This collides with:
https://lore.kernel.org/all/27956255dde39f58d73a7b51cb53cbe3d7804f54.1786411026.git.mariianikitash@google.com/
+ ret = snprintf(dest + len, destlen - len, "%s%s",
+ (len && dest[len - 1] != ',') ? "," : "", src);
I prefer Mariia's version because this inline ternary is difficult
to read.
I was expecting to land hers soon if the NFS folks don't pipe up. It is
one of the rare cases of still being open-coded, but the strlen() usage
was pre-existing to check for the trailing comma, so it's not a clean
seq_buf() conversion candidate...
--
Kees Cook
On Tue, Sep 15, 2026 at 08:18:20AM +0000, Bill Wendling wrote: quoted hunk --- 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 );
+
+ snprintf ( default_command_line + len , COMMAND_LINE_SIZE - len ,
+ " %s" , tag -> u . cmdline . cmdline );
#elif defined(CONFIG_CMDLINE_FORCE)
pr_warn ( "Ignoring tag cmdline (using the default kernel command line) \n " );
#else
It's pretty clear we have a pattern of "simple append" that is needed,
and while strlcat() does that, it's horrible. I feel like we need an
appending scnprintf(), and it needs to return like strscpy() does (i.e.
-E2BIG on truncation).
My goal would be:
- don't open-code string length math
- never leave the destination unterminated
- allow for format strings
- yes/no return indication for "did this truncate?"
Initializing a whole seq_buf struct for these small cases is too much
overhead...
For both cases (small without seq_buf, large with seq_buf), it is also
frequently needed to know the resulting strlen. seq_buf doesn't do this
right today, and a strscpy-style return value also doesn't tell us. :(
--
Kees Cook
On Tue, Sep 15, 2026 at 11:52 AM Kees Cook [off-list ref] wrote:
On Tue, Sep 15, 2026 at 08:18:38AM +0000, Bill Wendling wrote: quoted fs/nfs/nfsroot.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
This collides with:
https://lore.kernel.org/all/27956255dde39f58d73a7b51cb53cbe3d7804f54.1786411026.git.mariianikitash@google.com/
quoted + ret = snprintf(dest + len, destlen - len, "%s%s",
+ (len && dest[len - 1] != ',') ? "," : "", src);
I prefer Mariia's version because this inline ternary is difficult
to read. Agreed. I was trying to not stomp on her work. Please ignore this patch.
-bw
I was expecting to land hers soon if the NFS folks don't pipe up. It is
one of the rare cases of still being open-coded, but the strlen() usage
was pre-existing to check for the trailing comma, so it's not a clean
seq_buf() conversion candidate...
--
Kees Cook
On Tue, Sep 15, 2026 at 08:18:42AM +0000, Bill Wendling wrote: quoted hunk index e7c335ca0c36..4e3781815b6d 100644 --- a/drivers/edac/thunderx_edac.c
+++ b/drivers/edac/thunderx_edac.c @@ -20,6 +20,7 @@
#include <linux/atomic.h>
#include <linux/bitfield.h>
#include <linux/circ_buf.h>
+ #include <linux/seq_buf.h>
#include <asm/page.h>
@@ -47,12 +48,17 @@ static void decode_register(char *str, size_t size,
{
int ret = 0 ;
+ if ( size > 0 )
+ str [ 0 ] = '\0' ;
+
while ( descr -> type && descr -> mask && descr -> descr ) {
if ( reg & descr -> mask ) {
ret = snprintf ( str , size , " \n\t %s, %s" ,
descr -> type == ERR_CORRECTED ?
"Corrected" : "Uncorrected" ,
descr -> descr );
+ if ( ret < 0 || ret >= size )
+ break ;
str += ret ;
size -= ret ;
}
Seems like seq_buf would be better her? But yes, at the very least, this
needs to be scnprintf, not snprintf (or add the checks as you have
here).
The rest of the seq_buf conversions look right.
--
Kees Cook
On Tue, Sep 15, 2026 at 01:00:00PM -0700, Kees Cook wrote: Seems like seq_buf would be better her? But yes, at the very least, this
needs to be scnprintf, not snprintf (or add the checks as you have
here).
The rest of the seq_buf conversions look right.
This driver has been an orphan for a while now (we just made it official) so
I'd prefer it if we don't do anything here.
And yes, that mega CC list is just gross.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
quoted hunk -----Original Message-----
From: Bill Wendling <morbo@google.com>
Sent: Tuesday, September 15, 2026 10:19 AM
To: linux-kernel@vger.kernel.org
Cc: Bill Wendling <morbo@google.com>; codemender-
patching+linux@google.com; Russell King [off-list ref];
Huacai Chen [off-list ref]; WANG Xuerui [off-list ref];
Thomas Bogendoerfer [off-list ref]; James E.J. Bottomley
[off-list ref]; Helge Deller [off-list ref];
Thomas Gleixner [off-list ref]; Ingo Molnar [off-list ref];
Borislav Petkov [off-list ref]; Dave Hansen
[off-list ref]; x86@kernel.org; H. Peter Anvin
[off-list ref]; Ian Abbott [off-list ref]; H Hartley Sweeten
[off-list ref]; Luck, Tony [off-list ref];
Maarten Lankhorst [off-list ref]; Maxime Ripard
[off-list ref]; Thomas Zimmermann [off-list ref]; David
Airlie [off-list ref]; Simona Vetter [off-list ref]; Brost,
Matthew [off-list ref]; Thomas Hellström
[off-list ref]; Vivi, Rodrigo
[off-list ref]; Dmitry Torokhov [off-list ref];
Matthias Schwarzott [off-list ref]; Mauro Carvalho Chehab
[off-list ref]; Nguyen, Anthony L [off-list ref];
Kitszel, Przemyslaw [off-list ref]; Andrew Lunn
[off-list ref]; David S. Miller [off-list ref]; Eric
Dumazet [off-list ref]; Jakub Kicinski [off-list ref]; Paolo
Abeni [off-list ref]; Arend van Spriel
[off-list ref]; Rob Herring [off-list ref];
Saravana Kannan [off-list ref]; Krzysztof Kozlowski
[off-list ref]; Sylwester Nawrocki [off-list ref]; Peter
Griffin [off-list ref]; Alim Akhtar
[off-list ref]; Linus Walleij [off-list ref]; Anil
Gurumurthy [off-list ref]; Sudarsana Kalluru
[off-list ref]; Martin K. Petersen [off-list ref];
Trond Myklebust [off-list ref]; Anna Schumaker
[off-list ref]; Mike Marshall [off-list ref]; Martin
Brandenburg [off-list ref]; Kees Cook [off-list ref]; Jiri
Pirko [off-list ref]; Simon Horman [off-list ref]; Chuck Lever
[off-list ref]; Jeff Layton [off-list ref]; NeilBrown
[off-list ref]; Olga Kornievskaia [off-list ref]; Dai Ngo
[off-list ref]; Tom Talpey [off-list ref]; Jaroslav Kysela
[off-list ref]; Takashi Iwai [off-list ref]; Andrew Morton
[off-list ref]; Mike Rapoport (Microsoft)
[off-list ref]; Kanglong Wang [off-list ref]; Tiezhu
Yang [off-list ref]; Qiang Ma [off-list ref];
Randy Dunlap [off-list ref]; Pengpeng Hou
[off-list ref]; Ard Biesheuvel [off-list ref]; Breno Leitao
[off-list ref]; Thorsten Blum [off-list ref]; Harshit
Mogalapalli [off-list ref]; Greg Kroah-Hartman
[off-list ref]; Lyude Paul [off-list ref]; Ashutosh
Desai [off-list ref]; Deak, Imre [off-list ref];
Dmitry Baryshkov [off-list ref]; Johan Hovold
[off-list ref]; Berg, Johannes [off-list ref];
Korenblit, Miriam Rachel [off-list ref];
Alexander Stein [off-list ref]; Cryolitia PukNgae
[off-list ref]; Jiaming Zhang [off-list ref]; Will
Porter [off-list ref]; Cen Zhang [off-list ref];
Cássio Gabriel [off-list ref]; Rong Zhang
[off-list ref]; Arun Raghavan [off-list ref]; linux-arm-
kernel@lists.infradead.org; loongarch@lists.linux.dev; linux-
mips@vger.kernel.org; linux-parisc@vger.kernel.org; linux-
edac@vger.kernel.org; dri-devel@lists.freedesktop.org; intel-
xe@lists.freedesktop.org; linux-input@vger.kernel.org; linux-
media@vger.kernel.org; intel-wired-lan@lists.osuosl.org;
netdev@vger.kernel.org; linux-wireless@vger.kernel.org;
brcm80211@lists.linux.dev; brcm80211-dev-list.pdl@broadcom.com;
devicetree@vger.kernel.org; linux-samsung-soc@vger.kernel.org; linux-
gpio@vger.kernel.org; linux-scsi@vger.kernel.org; linux-
nfs@vger.kernel.org; devel@lists.orangefs.org; linux-
hardening@vger.kernel.org; linux-sound@vger.kernel.org
Subject: [PATCH 16/28] pinctrl: samsung: Use snprintf() to construct
pin bank names
samsung_banks_node_get() constructs each pin bank node name by copying
bank->name with strscpy() and appending the suffix with strlcat().
In preparation for removing the deprecated strlcat() API[1], format
the node name in a single snprintf() call, which preserves the
existing truncation check against sizeof(node_name).
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Gemini:Pro [editor_update_file,
make_kernel_build_single_file, checkpatch_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/pinctrl/samsung/pinctrl-samsung.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
index 5ecc9ed4c44d..0d639eec689c 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c
+++ b/drivers/pinctrl/samsung/pinctrl-samsung.c @@ -1155,8 +1155,7 @@ static void samsung_banks_node_get(struct device *dev, struct samsung_pinctrl_dr
bank = d->pin_banks;
for (i = 0; i < d->nr_banks; ++i, ++bank) {
- strscpy(node_name, bank->name, sizeof(node_name));
- len = strlcat(node_name, suffix, sizeof(node_name));
+ len = snprintf(node_name, sizeof(node_name), "%s%s",
bank->name,
+suffix);
if (len >= sizeof(node_name)) {
dev_err(dev, "Too long pin bank name '%s',
ignoring\n",
bank->name);
--
2.55.0.1032.g73a4cd73de-goog
Reviewed-by: Aleksandr Loktionov <redacted>
quoted hunk -----Original Message-----
From: Bill Wendling <morbo@google.com>
Sent: Tuesday, September 15, 2026 10:19 AM
To: linux-kernel@vger.kernel.org
Cc: Bill Wendling <morbo@google.com>; codemender-
patching+linux@google.com; Russell King [off-list ref];
Huacai Chen [off-list ref]; WANG Xuerui [off-list ref];
Thomas Bogendoerfer [off-list ref]; James E.J. Bottomley
[off-list ref]; Helge Deller [off-list ref];
Thomas Gleixner [off-list ref]; Ingo Molnar [off-list ref];
Borislav Petkov [off-list ref]; Dave Hansen
[off-list ref]; x86@kernel.org; H. Peter Anvin
[off-list ref]; Ian Abbott [off-list ref]; H Hartley Sweeten
[off-list ref]; Luck, Tony [off-list ref];
Maarten Lankhorst [off-list ref]; Maxime Ripard
[off-list ref]; Thomas Zimmermann [off-list ref]; David
Airlie [off-list ref]; Simona Vetter [off-list ref]; Brost,
Matthew [off-list ref]; Thomas Hellström
[off-list ref]; Vivi, Rodrigo
[off-list ref]; Dmitry Torokhov [off-list ref];
Matthias Schwarzott [off-list ref]; Mauro Carvalho Chehab
[off-list ref]; Nguyen, Anthony L [off-list ref];
Kitszel, Przemyslaw [off-list ref]; Andrew Lunn
[off-list ref]; David S. Miller [off-list ref]; Eric
Dumazet [off-list ref]; Jakub Kicinski [off-list ref]; Paolo
Abeni [off-list ref]; Arend van Spriel
[off-list ref]; Rob Herring [off-list ref];
Saravana Kannan [off-list ref]; Krzysztof Kozlowski
[off-list ref]; Sylwester Nawrocki [off-list ref]; Peter
Griffin [off-list ref]; Alim Akhtar
[off-list ref]; Linus Walleij [off-list ref]; Anil
Gurumurthy [off-list ref]; Sudarsana Kalluru
[off-list ref]; Martin K. Petersen [off-list ref];
Trond Myklebust [off-list ref]; Anna Schumaker
[off-list ref]; Mike Marshall [off-list ref]; Martin
Brandenburg [off-list ref]; Kees Cook [off-list ref]; Jiri
Pirko [off-list ref]; Simon Horman [off-list ref]; Chuck Lever
[off-list ref]; Jeff Layton [off-list ref]; NeilBrown
[off-list ref]; Olga Kornievskaia [off-list ref]; Dai Ngo
[off-list ref]; Tom Talpey [off-list ref]; Jaroslav Kysela
[off-list ref]; Takashi Iwai [off-list ref]; Andrew Morton
[off-list ref]; Mike Rapoport (Microsoft)
[off-list ref]; Kanglong Wang [off-list ref]; Tiezhu
Yang [off-list ref]; Qiang Ma [off-list ref];
Randy Dunlap [off-list ref]; Pengpeng Hou
[off-list ref]; Ard Biesheuvel [off-list ref]; Breno Leitao
[off-list ref]; Thorsten Blum [off-list ref]; Harshit
Mogalapalli [off-list ref]; Greg Kroah-Hartman
[off-list ref]; Lyude Paul [off-list ref]; Ashutosh
Desai [off-list ref]; Deak, Imre [off-list ref];
Dmitry Baryshkov [off-list ref]; Johan Hovold
[off-list ref]; Berg, Johannes [off-list ref];
Korenblit, Miriam Rachel [off-list ref];
Alexander Stein [off-list ref]; Cryolitia PukNgae
[off-list ref]; Jiaming Zhang [off-list ref]; Will
Porter [off-list ref]; Cen Zhang [off-list ref];
Cássio Gabriel [off-list ref]; Rong Zhang
[off-list ref]; Arun Raghavan [off-list ref]; linux-arm-
kernel@lists.infradead.org; loongarch@lists.linux.dev; linux-
mips@vger.kernel.org; linux-parisc@vger.kernel.org; linux-
edac@vger.kernel.org; dri-devel@lists.freedesktop.org; intel-
xe@lists.freedesktop.org; linux-input@vger.kernel.org; linux-
media@vger.kernel.org; intel-wired-lan@lists.osuosl.org;
netdev@vger.kernel.org; linux-wireless@vger.kernel.org;
brcm80211@lists.linux.dev; brcm80211-dev-list.pdl@broadcom.com;
devicetree@vger.kernel.org; linux-samsung-soc@vger.kernel.org; linux-
gpio@vger.kernel.org; linux-scsi@vger.kernel.org; linux-
nfs@vger.kernel.org; devel@lists.orangefs.org; linux-
hardening@vger.kernel.org; linux-sound@vger.kernel.org
Subject: [PATCH 22/28] media: si2165: Use snprintf() to format
frontend name
si2165_probe() constructs the frontend name by appending the chip name
and supported delivery system suffixes (" DVB-T", " DVB-C") to
state->fe.ops.info.name using multiple strlcat() calls.
In preparation for removing the deprecated strlcat() API[1], format
the complete frontend name in a single snprintf() call.
Link: https://github.com/KSPP/linux/issues/370 [1]
Cc: codemender-patching+linux@google.com
Assisted-by: Developer:Gemini [editor_update_file,
make_kernel_build_single_file, shell_command_run]
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/media/dvb-frontends/si2165.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/drivers/media/dvb-frontends/si2165.c b/drivers/media/dvb- frontends/si2165.c
index f1241b63aa5c..bd15eb58fc84 100644 --- a/drivers/media/dvb-frontends/si2165.c
+++ b/drivers/media/dvb-frontends/si2165.c @@ -1243,20 +1243,17 @@ static int si2165_probe(struct i2c_client *client)
chip_name, rev_char, state->chip_type,
state->chip_revcode);
- strlcat(state->fe.ops.info.name, chip_name,
- sizeof(state->fe.ops.info.name));
+ snprintf(state->fe.ops.info.name, sizeof(state- quoted fe.ops.info.name), + "Silicon Labs %s%s%s",
+ chip_name,
+ state->has_dvbt ? " DVB-T" : "",
+ state->has_dvbc ? " DVB-C" : "");
n = 0;
- if (state->has_dvbt) {
+ if (state->has_dvbt)
state->fe.ops.delsys[n++] = SYS_DVBT;
- strlcat(state->fe.ops.info.name, " DVB-T",
- sizeof(state->fe.ops.info.name));
- }
- if (state->has_dvbc) {
+ if (state->has_dvbc)
state->fe.ops.delsys[n++] = SYS_DVBC_ANNEX_A;
- strlcat(state->fe.ops.info.name, " DVB-C",
- sizeof(state->fe.ops.info.name));
- }
/* return fe pointer */
*pdata->fe = &state->fe;
--
2.55.0.1032.g73a4cd73de-goog
Reviewed-by: Aleksandr Loktionov <redacted>
quoted hunk -----Original Message-----
From: Bill Wendling <morbo@google.com>
Sent: Tuesday, September 15, 2026 10:19 AM
To: linux-kernel@vger.kernel.org
Cc: Bill Wendling <morbo@google.com>; Russell King
[off-list ref]; Huacai Chen [off-list ref]; WANG
Xuerui [off-list ref]; Thomas Bogendoerfer
[off-list ref]; James E.J. Bottomley
[off-list ref]; Helge Deller [off-list ref];
Thomas Gleixner [off-list ref]; Ingo Molnar [off-list ref];
Borislav Petkov [off-list ref]; Dave Hansen
[off-list ref]; x86@kernel.org; H. Peter Anvin
[off-list ref]; Ian Abbott [off-list ref]; H Hartley Sweeten
[off-list ref]; Luck, Tony [off-list ref];
Maarten Lankhorst [off-list ref]; Maxime Ripard
[off-list ref]; Thomas Zimmermann [off-list ref]; David
Airlie [off-list ref]; Simona Vetter [off-list ref]; Brost,
Matthew [off-list ref]; Thomas Hellström
[off-list ref]; Vivi, Rodrigo
[off-list ref]; Dmitry Torokhov [off-list ref];
Matthias Schwarzott [off-list ref]; Mauro Carvalho Chehab
[off-list ref]; Nguyen, Anthony L [off-list ref];
Kitszel, Przemyslaw [off-list ref]; Andrew Lunn
[off-list ref]; David S. Miller [off-list ref]; Eric
Dumazet [off-list ref]; Jakub Kicinski [off-list ref]; Paolo
Abeni [off-list ref]; Arend van Spriel
[off-list ref]; Rob Herring [off-list ref];
Saravana Kannan [off-list ref]; Krzysztof Kozlowski
[off-list ref]; Sylwester Nawrocki [off-list ref]; Peter
Griffin [off-list ref]; Alim Akhtar
[off-list ref]; Linus Walleij [off-list ref]; Anil
Gurumurthy [off-list ref]; Sudarsana Kalluru
[off-list ref]; Martin K. Petersen [off-list ref];
Trond Myklebust [off-list ref]; Anna Schumaker
[off-list ref]; Mike Marshall [off-list ref]; Martin
Brandenburg [off-list ref]; Kees Cook [off-list ref]; Jiri
Pirko [off-list ref]; Simon Horman [off-list ref]; Chuck Lever
[off-list ref]; Jeff Layton [off-list ref]; NeilBrown
[off-list ref]; Olga Kornievskaia [off-list ref]; Dai Ngo
[off-list ref]; Tom Talpey [off-list ref]; Jaroslav Kysela
[off-list ref]; Takashi Iwai [off-list ref]; Andrew Morton
[off-list ref]; Mike Rapoport (Microsoft)
[off-list ref]; Kanglong Wang [off-list ref]; Tiezhu
Yang [off-list ref]; Qiang Ma [off-list ref];
Randy Dunlap [off-list ref]; Pengpeng Hou
[off-list ref]; Ard Biesheuvel [off-list ref]; Breno Leitao
[off-list ref]; Thorsten Blum [off-list ref]; Harshit
Mogalapalli [off-list ref]; Greg Kroah-Hartman
[off-list ref]; Lyude Paul [off-list ref]; Ashutosh
Desai [off-list ref]; Deak, Imre [off-list ref];
Dmitry Baryshkov [off-list ref]; Johan Hovold
[off-list ref]; Berg, Johannes [off-list ref];
Korenblit, Miriam Rachel [off-list ref];
Alexander Stein [off-list ref]; Cryolitia PukNgae
[off-list ref]; Jiaming Zhang [off-list ref]; Will
Porter [off-list ref]; Cen Zhang [off-list ref];
Cássio Gabriel [off-list ref]; Rong Zhang
[off-list ref]; Arun Raghavan [off-list ref]; linux-arm-
kernel@lists.infradead.org; loongarch@lists.linux.dev; linux-
mips@vger.kernel.org; linux-parisc@vger.kernel.org; linux-
edac@vger.kernel.org; dri-devel@lists.freedesktop.org; intel-
xe@lists.freedesktop.org; linux-input@vger.kernel.org; linux-
media@vger.kernel.org; intel-wired-lan@lists.osuosl.org;
netdev@vger.kernel.org; linux-wireless@vger.kernel.org;
brcm80211@lists.linux.dev; brcm80211-dev-list.pdl@broadcom.com;
devicetree@vger.kernel.org; linux-samsung-soc@vger.kernel.org; linux-
gpio@vger.kernel.org; linux-scsi@vger.kernel.org; linux-
nfs@vger.kernel.org; devel@lists.orangefs.org; linux-
hardening@vger.kernel.org; linux-sound@vger.kernel.org
Subject: [PATCH 24/28] EDAC/thunderx: Fix stale error context in
thunderx_l2c_threaded_isr()
thunderx_l2c_threaded_isr() computes "tail" and "ctx" once before
entering the loop that drains the L2C error ring, and never updates
them on subsequent iterations. When multiple errors are queued, every
iteration reports the first ring entry rather than advancing through
the ring, causing subsequent hardware errors in a batch to go
unreported.
Recompute "tail" and "ctx" at the start of each loop iteration,
matching the sibling thunderx_ocx_com_threaded_isr() and
thunderx_ocx_lnk_threaded_isr() handlers.
Fixes: 41003396f932 ("EDAC, thunderx: Add Cavium ThunderX EDAC
driver")
Signed-off-by: Bill Wendling <morbo@google.com>
---
Cc: Russell King <linux@armlinux.org.uk>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Thomas Gleixner <tglx@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: x86@kernel.org
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Matthias Schwarzott <zzam@gentoo.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Saravana Kannan <saravanak@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Peter Griffin <peter.griffin@linaro.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Linus Walleij <linusw@kernel.org>
Cc: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
Cc: "Martin K. Petersen" <mkp@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>
Cc: Anna Schumaker <anna@kernel.org>
Cc: Mike Marshall <hubcap@omnibond.com>
Cc: Martin Brandenburg <martin@omnibond.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Simon Horman <horms@kernel.org>
Cc: Chuck Lever <cel@kernel.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: NeilBrown <neil@brown.name>
Cc: Olga Kornievskaia <okorniev@redhat.com>
Cc: Dai Ngo <Dai.Ngo@oracle.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Cc: Kanglong Wang <redacted>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Qiang Ma <redacted>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Pengpeng Hou <redacted>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Breno Leitao <leitao@debian.org>
Cc: Thorsten Blum <blum@kernel.org>
Cc: Harshit Mogalapalli <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ashutosh Desai <redacted>
Cc: Imre Deak <redacted>
Cc: Dmitry Baryshkov <redacted>
Cc: Johan Hovold <johan@kernel.org>
Cc: Johannes Berg <redacted>
Cc: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Cc: Alexander Stein <redacted>
Cc: Cryolitia PukNgae <cryolitia@uniontech.com>
Cc: Jiaming Zhang <redacted>
Cc: Will Porter <redacted>
Cc: Cen Zhang <redacted>
Cc: "Cássio Gabriel" <redacted>
Cc: Rong Zhang <redacted>
Cc: Arun Raghavan <redacted>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: linux-mips@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211@lists.linux.dev
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: devicetree@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: devel@lists.orangefs.org
Cc: linux-hardening@vger.kernel.org
Cc: linux-sound@vger.kernel.org
---
drivers/edac/thunderx_edac.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/edac/thunderx_edac.c b/drivers/edac/thunderx_edac.c index 9c0a1e48f96f..e7c335ca0c36 100644 --- a/drivers/edac/thunderx_edac.c
+++ b/drivers/edac/thunderx_edac.c @@ -1880,6 +1880,9 @@ static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id)
while (CIRC_CNT(l2c->ring_head, l2c->ring_tail,
ARRAY_SIZE(l2c->err_ctx))) {
+ tail = ring_pos(l2c->ring_tail, ARRAY_SIZE(l2c- quoted err_ctx)); + ctx = &l2c->err_ctx[tail];
+
snprintf(msg, L2C_MESSAGE_SIZE,
"%s: %s: %016llx, %s: %016llx",
l2c->edac_dev->ctl_name, reg_int_name, ctx- quoted reg_int, --
2.55.0.1032.g73a4cd73de-goog
Reviewed-by: Aleksandr Loktionov <redacted>
On Tue, Sep 15, 2026 at 12:00 PM Kees Cook [off-list ref] wrote: On Tue, Sep 15, 2026 at 08:18:20AM +0000, Bill Wendling wrote: quoted --- 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 );
+
+ snprintf ( default_command_line + len , COMMAND_LINE_SIZE - len ,
+ " %s" , tag -> u . cmdline . cmdline );
#elif defined(CONFIG_CMDLINE_FORCE)
pr_warn ( "Ignoring tag cmdline (using the default kernel command line) \n " );
#else
It's pretty clear we have a pattern of "simple append" that is needed,
and while strlcat() does that, it's horrible. I feel like we need an
appending scnprintf(), and it needs to return like strscpy() does (i.e.
-E2BIG on truncation).
My goal would be:
- don't open-code string length math
- never leave the destination unterminated
- allow for format strings
- yes/no return indication for "did this truncate?"
Initializing a whole seq_buf struct for these small cases is too much
overhead...
For both cases (small without seq_buf, large with seq_buf), it is also
frequently needed to know the resulting strlen. seq_buf doesn't do this
right today, and a strscpy-style return value also doesn't tell us. :( Something like "llvm::Twine" would work well for this.
-bw
On Tue, 15 Sep 2026 11:39:34 -0700
Kees Cook [off-list ref] wrote:
(I've just juked a lot of the 'reply to' list - too long to gmail.)
On Tue, Sep 15, 2026 at 08:18:18AM +0000, Bill Wendling wrote: quoted --- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c @@ -1850,10 +1850,12 @@ void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name,
pid = look_for_codec_id ( snd_ac97_codec_ids , id );
if ( pid ) {
- strlcat ( name , " " , maxlen );
- strlcat ( name , pid -> name , maxlen );
+ int l = strlen ( name );
+
if ( pid -> mask != 0xffffffff )
- sprintf ( name + strlen ( name ), " rev %u" , id & ~ pid -> mask );
+ snprintf ( name + l , maxlen - l , " %s rev %u" , pid -> name , id & ~ pid -> mask );
+ else
+ snprintf ( name + l , maxlen - l , " %s" , pid -> name );
if ( ac97 && pid -> patch ) {
if (( modem && ( pid -> flags & AC97_MODEM_PATCH )) ||
( ! modem && ! ( pid -> flags & AC97_MODEM_PATCH ))) @@ -1861,6 +1863,7 @@ void snd_ac97_get_name(struct snd_ac97 *ac97, unsigned int id, char *name,
}
} else {
int l = strlen ( name );
+
snprintf ( name + l , maxlen - l , " id %x" , id & 0xff );
}
}
I'd rather not open-code the length math here. Can't we use seq_buf()
instead?
Or just use the length returned by the strscpy() call that wrote the initial
part of name[].
The return the name length so the callers don't have to use strcat()
themselves.
Replacing strlcat() with strlen() and a copy is just pointless.
David
On Tue, Sep 15, 2026 at 6:11 PM Borislav Petkov [off-list ref] wrote:
On Tue, Sep 15, 2026 at 01:00:00PM -0700, Kees Cook wrote: quoted Seems like seq_buf would be better her? But yes, at the very least, this
needs to be scnprintf, not snprintf (or add the checks as you have
here).
The rest of the seq_buf conversions look right.
This driver has been an orphan for a while now (we just made it official) so
I'd prefer it if we don't do anything here. I'll remove those changes from future emails.
And yes, that mega CC list is just gross. Apologies. :-(
-bw
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] fortify: strcat using snprintf causes major performance regression
- [High] fortify: snprintf in strcat bypasses FORTIFY_READ bounds on source
--
commit d5360c3f44eeb8b6f9cd8cc195950107cbfe6556
Author: Bill Wendling [off-list ref]
fortify: Convert strlcat() to snprintf() in strcat()
Replaces the strlcat() implementation inside strcat() with
__builtin_snprintf() when the destination size is known, and falls back to
__underlying_strcat() otherwise. This prepares for the removal of the
deprecated strlcat() API.
Link: https://github.com/KSPP/linux/issues/370 [1]
quoted hunk diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h
index cf841dc71feff..0b489124bfcb8 100644
--- a/include/linux/fortify-string.h
+++ b/include/linux/fortify-string.h @@ -363,7 +363,12 @@ __FORTIFY_INLINE __diagnose_as(__builtin_strcat, 1, 2)
char * strcat ( char * const POS p , const char * q )
{
const size_t p_size = __member_size ( p );
- const size_t wanted = strlcat ( p , q , p_size );
+
+ if ( p_size == SIZE_MAX )
+ return __underlying_strcat ( p , q );
[Severity: High]
Does falling back to the unfortified __underlying_strcat() directly here skip
the FORTIFY_READ bounds checks on the source string q?
The previous strlcat() fallback delegated to __fortify_strlen(q), which safely
bounded the read and triggered a panic if q was not NUL-terminated within its
allocation. Could this bypass allow unbounded reads if q lacks a NUL
terminator?
+
+ const size_t p_len = __fortify_strlen(p);
+ const size_t wanted = p_len + __builtin_snprintf(p + p_len, p_size - p_len, "%s", q);
[Severity: High]
Will injecting __builtin_snprintf() for a fundamental string primitive like
strcat() cause a significant performance regression and stack bloat?
Because the size parameter is dynamic, the compiler cannot optimize this away,
meaning this will call into the heavy vsnprintf() format parsing engine.
Given that vsnprintf() has a notoriously large stack footprint, could this
increase the risk of kernel stack overflows in deep call chains?
Additionally, does passing q as an opaque variadic argument to snprintf()
defeat the compiler's __builtin_object_size() tracking?
Since the vsnprintf() engine will process "%s" using an unbounded strlen(q),
could this bypass the intended FORTIFY_READ mitigation and leak information
or crash if q is missing a NUL terminator?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915081910.4142719-1-morbo@google.com?part=12
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 [off-list ref]
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]
quoted hunk 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
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] scsi: bfa: missing char* cast for host_machine_name causes -Wformat warning
--
commit e9ab2501ca8e083742e7d8a4f33a0d89bbb70aad
Author: Bill Wendling [off-list ref]
scsi: bfa: Use snprintf() in bfa_fcs_fabric_nsymb_init()
This commit replaces chained strscpy() and strlcat() calls with a single
snprintf() call when constructing the node symbolic name.
Link: https://github.com/KSPP/linux/issues/370 [1]
quoted hunk diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
index 9b57312f43f50..7a4e0e8c7182d 100644
--- a/drivers/scsi/bfa/bfa_fcs.c
+++ b/drivers/scsi/bfa/bfa_fcs.c [ ... ] quoted hunk @@ -821,30 +821,13 @@ bfa_fcs_fabric_nsymb_init(struct bfa_fcs_fabric_s *fabric) [ ... ] - /* null terminate */
- port_cfg->node_sym_name.symname[BFA_SYMNAME_MAXLEN - 1] = 0;
+ /* Model name/number, Driver Version, Host machine name */
+ snprintf(port_cfg->node_sym_name.symname, BFA_SYMNAME_MAXLEN,
+ "%s" BFA_FCS_PORT_SYMBNAME_SEPARATOR
+ "%s" BFA_FCS_PORT_SYMBNAME_SEPARATOR
+ "%s" BFA_FCS_PORT_SYMBNAME_SEPARATOR,
+ model, (char *)driver_info->version,
+ driver_info->host_machine_name);
[Severity: Low]
Does this missing cast create a -Wformat compiler warning?
Looking at bfa_fcs_fabric_nsymb_init(), host_machine_name is passed to the
%s format specifier without an explicit (char *) cast, while version on the
preceding line includes one.
Does this cause a type mismatch warning since host_machine_name is an
unsigned char array?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915081910.4142719-1-morbo@google.com?part=4
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] alsa: usb-audio: string corruption in usb_audio_make_longname() on seq_buf overflow
--
commit 4261f1e1f38e25d5a907e1a1ad3aeefb3e4075ae
Author: Bill Wendling [off-list ref]
ALSA: usb-audio: Refactor usb_audio_make_longname() to use seq_buf
This commit refactors usb_audio_make_longname() to use struct seq_buf
instead of deprecated string functions like strlcat() for building the
device longname.
Link: https://github.com/KSPP/linux/issues/370 [1]
quoted hunk diff --git a/sound/usb/card.c b/sound/usb/card.c
index 9307da95efbef..bdca8085fca66 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
[ ... ]
quoted hunk @@ -667,44 +670,61 @@ static void usb_audio_make_longname(struct usb_device *dev,
s = preset->vendor_name;
else if (quirk && quirk->vendor_name)
s = quirk->vendor_name;
- *card->longname = 0;
+
+ seq_buf_init(&sb, card->longname, sizeof(card->longname));
+
if (s && *s)
- strscpy(card->longname, s);
+ seq_buf_puts(&sb, s);
else if (dev->manufacturer && *dev->manufacturer)
- strscpy(card->longname, dev->manufacturer);
-
- if (*card->longname) {
- strim(card->longname);
- if (*card->longname)
- strlcat(card->longname, " ", sizeof(card->longname));
+ seq_buf_puts(&sb, dev->manufacturer);
+
+ if (seq_buf_used(&sb)) {
+ char *trimmed;
+
+ seq_buf_str(&sb);
+ trimmed = strim(card->longname);
+ if (trimmed != card->longname)
+ memmove(card->longname, trimmed, strlen(trimmed) + 1);
+ sb.len = strlen(card->longname);
+ if (sb.len)
+ seq_buf_putc(&sb, ' ');
[Severity: Medium]
Does this seq_buf_putc() call leave the string without a null terminator if
the buffer subsequently overflows?
strim() and memmove() remove leading and trailing spaces by shifting the
string and inserting a null terminator, but they leave the old shifted
characters in the buffer immediately after the new null terminator.
seq_buf_putc() then overwrites the new null terminator with a space, but
does not append a new one to maintain string safety.
If any subsequent seq_buf_puts() calls (like shortname, path, or speed)
exceed the 80-byte capacity, they silently abort and place the buffer into
an overflow state without writing a new null terminator.
At the end of usb_audio_make_longname(), seq_buf_str() sees the overflow
state and places a null terminator only at the very end of the buffer, not
at the logical string end.
Can this expose duplicated characters or trailing spaces when the device
manufacturer string and subsequent concatenated parts exceed 80 bytes?
}
- strlcat(card->longname, card->shortname, sizeof(card->longname));
+ seq_buf_puts(&sb, card->shortname);
- len = strlcat(card->longname, " at ", sizeof(card->longname));
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915081910.4142719-1-morbo@google.com?part=5
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] devlink: data truncation in ethtool fw_version due to seq_buf_init()
--
commit 211bb0968eb0ca01b66de46e1d8900c3f0f30b64
Author: Bill Wendling [off-list ref]
devlink: Refactor strlcat() to seq_buf in __devlink_compat_running_version()
This commit replaces the deprecated strlcat() API in
__devlink_compat_running_version() with struct seq_buf and seq_buf_printf()
to append running firmware version strings.
Link: https://github.com/KSPP/linux/issues/370 [1]
quoted hunk diff --git a/net/devlink/dev.c b/net/devlink/dev.c
index 55959b0ff5ab4..987b071345c41 100644
--- a/net/devlink/dev.c
+++ b/net/devlink/dev.c [ ... ] quoted hunk @@ -1202,6 +1204,9 @@ static void __devlink_compat_running_version(struct devlink *devlink,
if (err)
goto free_msg;
+ seq_buf_init(&s, buf, len);
+ s.len = strnlen(buf, len);
[Severity: Medium]
Does this code inadvertently erase the existing contents of buf?
Looking at seq_buf_init(), it internally calls seq_buf_clear() which
unconditionally sets the first byte of the buffer to a NUL character. As a
result, the subsequent strnlen(buf, len) call will always evaluate to 0.
Since __devlink_compat_running_version() is meant to append devlink info to
the buffer, wouldn't erasing it here lose the driver's native fw_version
string that was previously populated by the driver's get_drvinfo() callback?
This could cause userspace applications calling ETHTOOL_GDRVINFO to receive
only the devlink info instead of the expected concatenated native and devlink
version string.
quoted hunk nla_for_each_attr_type(nlattr, DEVLINK_ATTR_INFO_VERSION_RUNNING,
(void *)msg->data, msg->len, rem) {
const struct nlattr *kv; @@ -1209,8 +1214,7 @@ static void __devlink_compat_running_version(struct devlink *devlink,
nla_for_each_nested_type(kv, DEVLINK_ATTR_INFO_VERSION_VALUE,
nlattr, rem_kv) {
- strlcat(buf, nla_data(kv), len);
- strlcat(buf, " ", len);
+ seq_buf_printf(&s, "%s ", (const char *)nla_data(kv));
}
}
free_msg:
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915081910.4142719-1-morbo@google.com?part=8
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] x86/setup: stack frame size exceeded in setup_arch()
--
commit 77de53f82acddaba0d28234aa8f72d7d99b20943
Author: Bill Wendling [off-list ref]
x86/setup: Use snprintf() to concatenate builtin and boot command lines
This commit replaces multiple strlcat() calls with a single snprintf()
call in setup_arch() to concatenate the builtin and boot command lines.
It uses a temporary buffer to avoid undefined behavior from overlapping
source and destination buffers, preparing for the removal of the
deprecated strlcat() API.
Link: https://github.com/KSPP/linux/issues/370 [1]
quoted hunk diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c @@ -916,9 +916,11 @@ void __init setup_arch(char **cmdline_p)
#else
if ( builtin_cmdline [ 0 ]) {
/* append boot loader cmdline to builtin */
- strlcat ( builtin_cmdline , " " , COMMAND_LINE_SIZE );
- strlcat ( builtin_cmdline , boot_command_line , COMMAND_LINE_SIZE );
- strscpy ( boot_command_line , builtin_cmdline , COMMAND_LINE_SIZE );
+ char tmp [ COMMAND_LINE_SIZE ];
[Severity: Low]
Will this unconditionally trigger a -Wframe-larger-than warning during build?
COMMAND_LINE_SIZE is 2048 on x86_64, which matches the default warning
threshold for stack frames (CONFIG_FRAME_WARN).
Combined with the function overhead and other local variables, allocating
this array directly on the stack will reliably exceed the limit and break
builds that have CONFIG_WERROR enabled.
+
+ snprintf(tmp, COMMAND_LINE_SIZE, "%s %s", builtin_cmdline, boot_command_line);
+ strscpy(builtin_cmdline, tmp, COMMAND_LINE_SIZE);
+ strscpy(boot_command_line, tmp, COMMAND_LINE_SIZE);
}
#endif
builtin_cmdline_added = true;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260915081910.4142719-1-morbo@google.com?part=19