OPP: debugfs: Fix warning with W=1 builds

Message ID 50a1a0f23efdc261844a306f5e611051843b4e52.1709536847.git.viresh.kumar@linaro.org
State New
Headers
Series OPP: debugfs: Fix warning with W=1 builds |

Commit Message

Viresh Kumar March 4, 2024, 7:20 a.m. UTC
  We currently get the following warning:

debugfs.c:105:54: error: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 8 [-Werror=format-truncation=]
                 snprintf(name, sizeof(name), "supply-%d", i);
                                                      ^~
debugfs.c:105:46: note: directive argument in the range [-2147483644, 2147483646]
                 snprintf(name, sizeof(name), "supply-%d", i);
                                              ^~~~~~~~~~~
debugfs.c:105:17: note: 'snprintf' output between 9 and 19 bytes into a destination of size 15
                 snprintf(name, sizeof(name), "supply-%d", i);

Fix this and another potential issue it by increasing size of the arrays.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402141313.81ltVF5g-lkp@intel.com/
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 drivers/opp/debugfs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Dhruva Gole March 4, 2024, 7:42 a.m. UTC | #1
Hi Viresh,

On 04/03/24 12:50, Viresh Kumar wrote:
> We currently get the following warning:
> 
> debugfs.c:105:54: error: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 8 [-Werror=format-truncation=]
>                   snprintf(name, sizeof(name), "supply-%d", i);
>                                                        ^~
> debugfs.c:105:46: note: directive argument in the range [-2147483644, 2147483646]
>                   snprintf(name, sizeof(name), "supply-%d", i);
>                                                ^~~~~~~~~~~
> debugfs.c:105:17: note: 'snprintf' output between 9 and 19 bytes into a destination of size 15
>                   snprintf(name, sizeof(name), "supply-%d", i);
> 
> Fix this and another potential issue it by increasing size of the arrays.
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202402141313.81ltVF5g-lkp@intel.com/
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
>   drivers/opp/debugfs.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c
> index ec030b19164a..96313aa55db6 100644
> --- a/drivers/opp/debugfs.c
> +++ b/drivers/opp/debugfs.c
> @@ -78,7 +78,7 @@ static void opp_debug_create_clks(struct dev_pm_opp *opp,
>   				  struct opp_table *opp_table,
>   				  struct dentry *pdentry)
>   {
> -	char name[12];
> +	char name[19];


I'd rather we use malloc or else change the limits of the
"rate_hz_%d" to "rate_hz_%4d" or how many ever digits makes sense.

[...]
  
Viresh Kumar March 4, 2024, 10:58 a.m. UTC | #2
On 04-03-24, 13:12, Dhruva Gole wrote:
> I'd rather we use malloc

The problem is that we don't know the length of the string here and we
don't want to hardcode the number of clks, regulators, etc.

> or else change the limits of the
> "rate_hz_%d" to "rate_hz_%4d" or how many ever digits makes sense.

That will not work I am afraid. This works as you intend to for %s,
but not for %d. With %Nd, N only signifies the minimum space the value
will take.

Let me make it better anyway, will try something.
  

Patch

diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c
index ec030b19164a..96313aa55db6 100644
--- a/drivers/opp/debugfs.c
+++ b/drivers/opp/debugfs.c
@@ -78,7 +78,7 @@  static void opp_debug_create_clks(struct dev_pm_opp *opp,
 				  struct opp_table *opp_table,
 				  struct dentry *pdentry)
 {
-	char name[12];
+	char name[19];
 	int i;
 
 	if (opp_table->clk_count == 1) {
@@ -100,7 +100,7 @@  static void opp_debug_create_supplies(struct dev_pm_opp *opp,
 	int i;
 
 	for (i = 0; i < opp_table->regulator_count; i++) {
-		char name[15];
+		char name[19];
 
 		snprintf(name, sizeof(name), "supply-%d", i);