Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 4 Mar 2024 17:08:29 +0530 | Subject | Re: [PATCH V2 1/2] OPP: debugfs: Fix warning with W=1 builds | From | Dhruva Gole <> |
| |
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); >
-- Thanks and Regards, Dhruva Gole
| ![\](/images/icornerr.gif) |