[PATCH] platform/x86/intel-uncore-freq: avoid non-literal format string

Arnd Bergmann posted 1 patch 4 months ago
.../x86/intel/uncore-frequency/uncore-frequency-common.c        | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] platform/x86/intel-uncore-freq: avoid non-literal format string
Posted by Arnd Bergmann 4 months ago
From: Arnd Bergmann <arnd@arndb.de>

Using a string variable in place of a format string causes a W=1 build warning:

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c:61:40: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
   61 |                 length += sysfs_emit_at(buf, length, agent_name[agent]);
      |                                                      ^~~~~~~~~~~~~~~~~

Use the safer "%s" format string to print it instead.

Fixes: b98fa870fce2 ("platform/x86/intel-uncore-freq: Add attributes to show agent types")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 .../x86/intel/uncore-frequency/uncore-frequency-common.c        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c
index 0f8aea18275b..65897fae17df 100644
--- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c
+++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c
@@ -58,7 +58,7 @@ static ssize_t show_agent_types(struct kobject *kobj, struct kobj_attribute *att
 		if (length)
 			length += sysfs_emit_at(buf, length, " ");
 
-		length += sysfs_emit_at(buf, length, agent_name[agent]);
+		length += sysfs_emit_at(buf, length, "%s", agent_name[agent]);
 	}
 
 	length += sysfs_emit_at(buf, length, "\n");
-- 
2.39.5
Re: [PATCH] platform/x86/intel-uncore-freq: avoid non-literal format string
Posted by Ilpo Järvinen 3 months, 4 weeks ago
On Tue, 10 Jun 2025 11:34:55 +0200, Arnd Bergmann wrote:

> Using a string variable in place of a format string causes a W=1 build warning:
> 
> drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c:61:40: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
>    61 |                 length += sysfs_emit_at(buf, length, agent_name[agent]);
>       |                                                      ^~~~~~~~~~~~~~~~~
> 
> Use the safer "%s" format string to print it instead.
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/1] platform/x86/intel-uncore-freq: avoid non-literal format string
      commit: 0c44b46f51a17baa7ab67de1464427116e9c4eaa

--
 i.
Re: [PATCH] platform/x86/intel-uncore-freq: avoid non-literal format string
Posted by srinivas pandruvada 4 months ago
On Tue, 2025-06-10 at 11:34 +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Using a string variable in place of a format string causes a W=1
> build warning:
> 
I am not able to reproduce with W=1 with gcc 15.1.1 20250521 (Red Hat
15.1.1-2).

$touch drivers/platform/x86/intel/uncore-frequency/uncore-frequency-
common.c
$ make -j128 W=1
  DESCEND objtool
  CALL    scripts/checksyscalls.sh
  INSTALL libsubcmd_headers
.pylintrc: warning: ignored by one of the .gitignore files
  CC [M]  drivers/platform/x86/intel/uncore-frequency/uncore-frequency-
common.o
  LD [M]  drivers/platform/x86/intel/uncore-frequency/intel-uncore-
frequency-common.o


But verified the change:

Tested-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>

Thanks,
Srinivas

> drivers/platform/x86/intel/uncore-frequency/uncore-frequency-
> common.c:61:40: error: format string is not a string literal
> (potentially insecure) [-Werror,-Wformat-security]
>    61 |                 length += sysfs_emit_at(buf, length,
> agent_name[agent]);
>       |                                                     
> ^~~~~~~~~~~~~~~~~
> 
> Use the safer "%s" format string to print it instead.
> 
> Fixes: b98fa870fce2 ("platform/x86/intel-uncore-freq: Add attributes
> to show agent types")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  .../x86/intel/uncore-frequency/uncore-frequency-common.c        | 2
> +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/platform/x86/intel/uncore-frequency/uncore-
> frequency-common.c b/drivers/platform/x86/intel/uncore-
> frequency/uncore-frequency-common.c
> index 0f8aea18275b..65897fae17df 100644
> --- a/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-
> common.c
> +++ b/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-
> common.c
> @@ -58,7 +58,7 @@ static ssize_t show_agent_types(struct kobject
> *kobj, struct kobj_attribute *att
>  		if (length)
>  			length += sysfs_emit_at(buf, length, " ");
>  
> -		length += sysfs_emit_at(buf, length,
> agent_name[agent]);
> +		length += sysfs_emit_at(buf, length, "%s",
> agent_name[agent]);
>  	}
>  
>  	length += sysfs_emit_at(buf, length, "\n");