Message ID | 20231025122316.836400-1-rui.zhang@intel.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon: (coretemp) Fix potentially truncated sysfs attribute name | expand |
On Wed, Oct 25, 2023 at 08:23:16PM +0800, Zhang Rui wrote: > When build with W=1 and "-Werror=format-truncation", below error is > observed in coretemp driver, > > drivers/hwmon/coretemp.c: In function 'create_core_data': > >> drivers/hwmon/coretemp.c:393:34: error: '%s' directive output may be truncated writing likely 5 or more bytes into a region of size between 3 and 13 [-Werror=format-truncation=] > 393 | "temp%d_%s", attr_no, suffixes[i]); > | ^~ > drivers/hwmon/coretemp.c:393:26: note: assuming directive output of 5 bytes > 393 | "temp%d_%s", attr_no, suffixes[i]); > | ^~~~~~~~~~~ > drivers/hwmon/coretemp.c:392:17: note: 'snprintf' output 7 or more bytes (assuming 22) into a destination of size 19 > 392 | snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH, > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 393 | "temp%d_%s", attr_no, suffixes[i]); > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > > Given that > 1. '%d' could take 10 charactors, > 2. '%s' could take 10 charactors ("crit_alarm"), > 3. "temp", "_" and the NULL terminator take 6 charactors, > fix the problem by increasing CORETEMP_NAME_LENGTH to 28. > > Signed-off-by: Zhang Rui <rui.zhang@intel.com> > Fixes: 7108b80a542b ("hwmon/coretemp: Handle large core ID value") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202310200443.iD3tUbbK-lkp@intel.com/ Applied. Thanks, Guenter
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c index eba94f68585a..ba82d1e79c13 100644 --- a/drivers/hwmon/coretemp.c +++ b/drivers/hwmon/coretemp.c @@ -42,7 +42,7 @@ MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius"); #define PKG_SYSFS_ATTR_NO 1 /* Sysfs attribute for package temp */ #define BASE_SYSFS_ATTR_NO 2 /* Sysfs Base attr no for coretemp */ #define NUM_REAL_CORES 128 /* Number of Real cores per cpu */ -#define CORETEMP_NAME_LENGTH 19 /* String Length of attrs */ +#define CORETEMP_NAME_LENGTH 28 /* String Length of attrs */ #define MAX_CORE_ATTRS 4 /* Maximum no of basic attrs */ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1) #define MAX_CORE_DATA (NUM_REAL_CORES + BASE_SYSFS_ATTR_NO)