From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBBC22BD5A7 for ; Tue, 30 Dec 2025 22:20:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767133240; cv=none; b=CvAyNGK4ms+Cv6mgazM/rJsBRt0fgqExox+bJAj46IG4woGNyKks90Ir7oqNKuTOxlGBYhPmdc+k4/qnZcQ510P9+F97BBQtQxj6GtnlVkzYfdPZ1SoHGOrBzKsuLSpu09xUwx4VgHzOFx+QR9zQpyzM5DtpRSQlrifUfJph6zI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767133240; c=relaxed/simple; bh=CjQU4D0ezv8Xtzq3LSerIPTGTUt1oMP/rr2CCgvnx8I=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hzA2cQZf0HrNNgpAv06fCsJUJyj3nlWydJS+2qMU4oT+COTd/yqMuWgTRAXWUSTntj0j2bdaRHEZk4s2/DxbOsyHG+CsXvRY6KygQCNWJ3e5ufjxlvNUsZftsAnWP3ogQCOrTwpfBBafPyYJE1Sdfc2TzEiQMe5fbG+fp9siEmA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A2m1auOd; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A2m1auOd" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-47d3ba3a4deso26437525e9.2 for ; Tue, 30 Dec 2025 14:20:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767133237; x=1767738037; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=sGGQSTUlZhJxYHgy8RV4vAFQdDFvSWTOXjMfOdrpY9A=; b=A2m1auOd6NtOCUQkUIj0FIMYhGB87HnG2WVFM11+ZLIF74WEpf6X2sF4zz9yZlMhsj rFGzO2aMOrabY020T8mcbShXzKecmACaebKZoVPbK9pALe4CtWun65HUdqWtY4UOGWyw E0dL/qR1tKgzpWnAcLsRud2rJEGXXSGX6M4efIJsUIHfW00fILN0uRlM7mbIHtxYz9jZ F7f/OFY4LnADjS2eaJ4I1fFQTJ6Ylv1vJIhP2fA5IIePr4scHC+NEyWRrpSSAZb1/jql rWcwuVYWPbfr7/myVuB/y+gkGMIot6MUEaKY/EWGOSLmOdQJHkpxe99ic8dBVmzTv4jE DdIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767133237; x=1767738037; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=sGGQSTUlZhJxYHgy8RV4vAFQdDFvSWTOXjMfOdrpY9A=; b=rF2g29lRXRn+B89P4hSL0wS7V6mck0pC29VAmfGMIOP9bTM7Oy01OcQ/eppDH43yGT 0vksfUr4yKXlHmUs6HfKux/HGzMFOhm4PdcZqPt+rMnxQOmr5ZXHC6mSQcxlc6FBI/oN 0eLhGsd0HC9ohQgtIScSWmP5vPa8KxA7+RvG2A5OwYQuGitsAoGnBQP8XV848sh07SPX 8uzrBoazKpVb+t7wU94JCXe4Guf8JrGdcRr13j3dSogTbvU+4WiiJ6XaSUJKYRVyZrTN hun20+mtWI/2eTpnDUhd7EKOBRyxw8w+5xDmX5uRFPU7ptt3z1HZ1C4qtLSM1UmRHlap +6aw== X-Forwarded-Encrypted: i=1; AJvYcCVI0IxXDK23hTEvL5ipdXT/qt5hMhQPT7ZpT0NQ7NY1AI8/0uviVv1yhnbEbOJGLFdsm4Hubq6g5O0fPMg=@vger.kernel.org X-Gm-Message-State: AOJu0YzAAQ4tSukw1YcGg374pA6EOT7uXePwZ1mgH746i11Gr7jNGrVf 0QTcEW+7QzDbLAe/AVvLA33zJN5biUb/ovZmpcln1bhE7YpF8Xq38Qrn X-Gm-Gg: AY/fxX4/goe5Un7pSvcxMw6x8OmMQOediN7SD3Wf28a+07uDkSi58FQlxMa3nywd0xh OFs5LYGT9QkaswLlVrzxwC5HXqgVs6KrvvIBqVH7Rd+v+4p7P4VYrfRzcFN7YaN/w6j1sKPFkyp NwzZaChnWZ4yYyKNe0dhgyL3Ar3BTOwnIiPyn5WKrbQMzStaGXLDmVVaz9bZJNtDq9Gxz1QiJKb neiHs3moWzJ1sa2o47BeTbqF0YSAhGs54Z447qBHqwtJBu9SSb0eXoSd2VnlEd2jcx0L3Yl3Z5J CifCNU8s5p3RsHWfuCugsB95psD/SeFpAEMZG+vnXXbytMN58iNL7EfXKWzNNKa8pptFIOb4cxf Jiql0NWl2MP0eN2VGwbAHb2XYcYNY8pgwLOFJgdnyfsuGy6GXoiLU+hIE6qoyv2SHHQu9aKlDpO TAal6VEqomAmW7elFcbflw/gZvS01EBJajnawjb1cHEOM6Hf3iciUa X-Google-Smtp-Source: AGHT+IGRbsWr1CjXDNRxuOQPJr5I9b+KOcFGioV2gJKWwo6gBLgB4LJQBEehEwC0bO4zoIs+uj05rA== X-Received: by 2002:a05:600c:1c29:b0:46e:37a7:48d1 with SMTP id 5b1f17b1804b1-47d1959d4bamr467383295e9.34.1767133236770; Tue, 30 Dec 2025 14:20:36 -0800 (PST) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47be3a40c5dsm266423085e9.6.2025.12.30.14.20.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 14:20:36 -0800 (PST) Date: Tue, 30 Dec 2025 22:20:35 +0000 From: David Laight To: Greg Kroah-Hartman Cc: Sun Jian , Vaibhav Agarwal , Johan Hovold , Mark Greer , Alex Elder , greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] staging: greybus: audio: avoid snprintf truncation warnings Message-ID: <20251230222035.199100bc@pumpkin> In-Reply-To: <2025123028-transform-nutshell-81fa@gregkh> References: <20251229112649.137391-1-sun.jian.kdev@gmail.com> <20251230012908.214959-1-sun.jian.kdev@gmail.com> <2025123028-transform-nutshell-81fa@gregkh> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 30 Dec 2025 08:40:48 +0100 Greg Kroah-Hartman wrote: > On Tue, Dec 30, 2025 at 09:29:08AM +0800, Sun Jian wrote: > > W=1 reports possible truncation when formatting widget/control names > > with snprintf() and a %s argument. Use a small helper and hide the %s > > pointer from the compiler's truncation analysis via OPTIMIZER_HIDE_VAR(), > > while keeping the existing snprintf() formatting. > > > > No functional change intended. > > > > Signed-off-by: Sun Jian > > > > Changes in v3: > > - Replace the earlier scnprintf()/strlcat() approach with a helper > > keeping snprintf(). > > - Hide the %s argument from compiler truncation analysis using > > OPTIMIZER_HIDE_VAR(). > > - Add a small local length limit macro with a short comment. > > --- > > The "changes" go below the --- line, as the documentation asks for. And > please include what changed from versions prior to that as well. > > But: > > > drivers/staging/greybus/audio_topology.c | 22 +++++++++++++++------- > > 1 file changed, 15 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c > > index 76146f91cddc..35775067897c 100644 > > --- a/drivers/staging/greybus/audio_topology.c > > +++ b/drivers/staging/greybus/audio_topology.c > > @@ -1009,6 +1009,19 @@ static const struct snd_soc_dapm_widget gbaudio_widgets[] = { > > SND_SOC_DAPM_POST_PMD), > > }; > > > > +/* Limit %s length to avoid -Wformat-truncation with snprintf() */ > > +#define GB_NAME_TMP_LEN 32 > > + > > +static void gbaudio_prefix_dev_id(char *name, size_t name_len, > > + unsigned int dev_id) > > +{ > > + char temp_name[GB_NAME_TMP_LEN], *cp = temp_name; > > + > > + strscpy(temp_name, name, sizeof(temp_name)); > > + OPTIMIZER_HIDE_VAR(cp); > > What? Why? That feels wrong. Let's not add hacks for broken > compilers. I don't like it either. But I don't know of any other way of silencing that compiler warning. It is actually a real PITA and mostly pointless. After all it only warns about strings it knows the maximum size of. It is more likely that a truncation 'bug' will happen for an indefinite length string. After all, the whole point about snprintf() is that it truncates. I can well imagine that trying to stop the 'format overflow' warning has actually created bugs! David > > > + snprintf(name, name_len, "GB %u %s", dev_id, cp); > > +} > > + > > static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module, > > struct snd_soc_dapm_widget *dw, > > struct gb_audio_widget *w, int *w_size) > > @@ -1018,7 +1031,6 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module, > > struct gb_audio_control *curr; > > struct gbaudio_control *control, *_control; > > size_t size; > > - char temp_name[NAME_SIZE]; > > > > ret = gbaudio_validate_kcontrol_count(w); > > if (ret) { > > @@ -1086,8 +1098,7 @@ 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); > > + gbaudio_prefix_dev_id(w->name, sizeof(w->name), module->dev_id); > > This feels like a broken tool, let's not do foolish things just to make > compilers quiet. W=1 is not a good reason to just make things "silent" > by moving code around like you did here. > > sorry, > > greg k-h