Message ID | ab75239d2280e506e5b9386b8aeb9edf97cd3294.1709551295.git.viresh.kumar@linaro.org (mailing list archive) |
---|---|
State | New |
Delegated to: | viresh kumar |
Headers | show |
Series | [V2,1/2] OPP: debugfs: Fix warning with W=1 builds | expand |
Hi, On 04/03/24 16:52, 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 issues it by allocating larger arrays. Just to keep in mind while applying maybe: s/another/other > Use the exact string format to allocate the arrays without getting into > these issues again. > 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> > --- > V2: Use string name while allocating memory for the array to fix potential > issues later on. > > drivers/opp/debugfs.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c > index ec030b19164a..27c3748347af 100644 > --- a/drivers/opp/debugfs.c > +++ b/drivers/opp/debugfs.c > @@ -56,11 +56,11 @@ static void opp_debug_create_bw(struct dev_pm_opp *opp, > struct dentry *pdentry) > { > struct dentry *d; > - char name[20]; > + char name[] = "icc-path-XXXXXXXXXX"; /* Integers can take 10 chars max */ LGTM! > int i; > > for (i = 0; i < opp_table->path_count; i++) { > - snprintf(name, sizeof(name), "icc-path-%.1d", i); > + snprintf(name, sizeof(name), "icc-path-%d", i); > > /* Create per-path directory */ > d = debugfs_create_dir(name, pdentry); > @@ -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[] = "rate_hz_XXXXXXXXXX"; /* Integers can take 10 chars max */ > 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[] = "supply-XXXXXXXXXX"; /* Integers can take 10 chars max */ Feels like a better solution to me than the previous revision, thanks! Reviewed-by: Dhruva Gole <d-gole@ti.com> > > snprintf(name, sizeof(name), "supply-%d", i); >
On 04-03-24, 17:08, Dhruva Gole wrote: > Hi, > > On 04/03/24 16:52, 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 issues it by allocating larger arrays. > > Just to keep in mind while applying maybe: s/another/other > > > Use the exact string format to allocate the arrays without getting into > > these issues again. > > 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> > > --- > > V2: Use string name while allocating memory for the array to fix potential > > issues later on. > > > > drivers/opp/debugfs.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c > > index ec030b19164a..27c3748347af 100644 > > --- a/drivers/opp/debugfs.c > > +++ b/drivers/opp/debugfs.c > > @@ -56,11 +56,11 @@ static void opp_debug_create_bw(struct dev_pm_opp *opp, > > struct dentry *pdentry) > > { > > struct dentry *d; > > - char name[20]; > > + char name[] = "icc-path-XXXXXXXXXX"; /* Integers can take 10 chars max */ Integers can take 11 chars max, I forgot the negative symbol. Added space for another byte and pushed the changes. > Feels like a better solution to me than the previous revision, thanks! > > > Reviewed-by: Dhruva Gole <d-gole@ti.com> Thanks.
diff --git a/drivers/opp/debugfs.c b/drivers/opp/debugfs.c index ec030b19164a..27c3748347af 100644 --- a/drivers/opp/debugfs.c +++ b/drivers/opp/debugfs.c @@ -56,11 +56,11 @@ static void opp_debug_create_bw(struct dev_pm_opp *opp, struct dentry *pdentry) { struct dentry *d; - char name[20]; + char name[] = "icc-path-XXXXXXXXXX"; /* Integers can take 10 chars max */ int i; for (i = 0; i < opp_table->path_count; i++) { - snprintf(name, sizeof(name), "icc-path-%.1d", i); + snprintf(name, sizeof(name), "icc-path-%d", i); /* Create per-path directory */ d = debugfs_create_dir(name, pdentry); @@ -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[] = "rate_hz_XXXXXXXXXX"; /* Integers can take 10 chars max */ 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[] = "supply-XXXXXXXXXX"; /* Integers can take 10 chars max */ snprintf(name, sizeof(name), "supply-%d", i);
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 issues it by allocating larger arrays. Use the exact string format to allocate the arrays without getting into these issues again. 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> --- V2: Use string name while allocating memory for the array to fix potential issues later on. drivers/opp/debugfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)