mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] staging: greybus: avoid snprintf truncation in audio topology
@ 2026-09-23  2:34 Eduard Zateev
  2026-09-23  8:01 ` Dan Carpenter
  0 siblings, 1 reply; 2+ messages in thread
From: Eduard Zateev @ 2026-09-23  2:34 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Vaibhav Agarwal, Mark Greer, Johan Hovold, Alex Elder,
	greybus-dev, linux-staging, linux-kernel, Eduard Zateev

Building with W=1 reports format truncation warnings when prefixing
the Greybus device id to widget and control names.

The destination buffers are NAME_SIZE bytes, while the copied topology
names may already take most of that space. Split the operation into
writing the prefix first and then copying the remaining name into the
space left in the destination buffer.

This avoids the -Wformat-truncation warnings while preserving bounded
string handling.

Signed-off-by: Eduard Zateev <hackerowskiy@gmail.com>
---
 drivers/staging/greybus/audio_topology.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 76146f91cddc..72a71fd38312 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -1019,6 +1019,7 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module,
 	struct gbaudio_control *control, *_control;
 	size_t size;
 	char temp_name[NAME_SIZE];
+	int name_len;
 
 	ret = gbaudio_validate_kcontrol_count(w);
 	if (ret) {
@@ -1087,7 +1088,8 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module,
 
 	/* Prefix dev_id to widget control_name */
 	strscpy(temp_name, w->name, sizeof(temp_name));
-	snprintf(w->name, sizeof(w->name), "GB %d %s", module->dev_id, temp_name);
+	name_len = scnprintf(w->name, sizeof(w->name), "GB %d ", module->dev_id);
+	strscpy(w->name + name_len, temp_name, sizeof(w->name) - name_len);
 
 	switch (w->type) {
 	case snd_soc_dapm_spk:
@@ -1144,6 +1146,7 @@ static int gbaudio_tplg_process_kcontrols(struct gbaudio_module_info *module,
 	struct gbaudio_control *control, *_control;
 	size_t size;
 	char temp_name[NAME_SIZE];
+	int name_len;
 
 	size = sizeof(struct snd_kcontrol_new) * module->num_controls;
 	dapm_kctls = devm_kzalloc(module->dev, size, GFP_KERNEL);
@@ -1169,8 +1172,10 @@ static int gbaudio_tplg_process_kcontrols(struct gbaudio_module_info *module,
 		control->id = curr->id;
 		/* Prefix dev_id to widget_name */
 		strscpy(temp_name, curr->name, sizeof(temp_name));
-		snprintf(curr->name, sizeof(curr->name), "GB %d %s", module->dev_id,
-			 temp_name);
+		name_len = scnprintf(curr->name, sizeof(curr->name), "GB %d ",
+				     module->dev_id);
+		strscpy(curr->name + name_len, temp_name,
+			sizeof(curr->name) - name_len);
 		control->name = curr->name;
 		if (curr->info.type == GB_AUDIO_CTL_ELEM_TYPE_ENUMERATED) {
 			struct gb_audio_enumerated *gbenum =
-- 
2.55.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] staging: greybus: avoid snprintf truncation in audio topology
  2026-09-23  2:34 [PATCH] staging: greybus: avoid snprintf truncation in audio topology Eduard Zateev
@ 2026-09-23  8:01 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2026-09-23  8:01 UTC (permalink / raw)
  To: Eduard Zateev
  Cc: Greg Kroah-Hartman, Vaibhav Agarwal, Mark Greer, Johan Hovold,
	Alex Elder, greybus-dev, linux-staging, linux-kernel

On Wed, Sep 23, 2026 at 04:34:05AM +0200, Eduard Zateev wrote:
> Building with W=1 reports format truncation warnings when prefixing
> the Greybus device id to widget and control names.
> 
> The destination buffers are NAME_SIZE bytes, while the copied topology
> names may already take most of that space. Split the operation into
> writing the prefix first and then copying the remaining name into the
> space left in the destination buffer.
> 
> This avoids the -Wformat-truncation warnings while preserving bounded
> string handling.
> 
> Signed-off-by: Eduard Zateev <hackerowskiy@gmail.com>
> ---

I hate the -Wformat-truncation warning.  It doesn't really matter for
the kernel.  Dmesg output has always been really grotty and especially
when you actually need it because of a crash then that's when it's
the most jumbled.  Truncating the last couple bytes is not going to
make a crash noticably more difficult to solve.

The fix is to get rid of -Wformat-truncation for kernel builds.

This patch silences the warning but doesn't fix anything and makes
the code less readable.

regards,
dan carpenter


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-23  8:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-23  2:34 [PATCH] staging: greybus: avoid snprintf truncation in audio topology Eduard Zateev
2026-09-23  8:01 ` Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®