[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] tools/xenmpd: Fix gcc10 snprintf warning
Hi, On 14/10/2020 11:47, Bertrand Marquis wrote: Add a check for snprintf return code and ignore the entry if we get an error. This should in fact never happen and is more a trick to make gcc happy and prevent compilation errors. This is solving the gcc warning: xenpmd.c:92:37: error: '%s' directive output may be truncated writing between 4 and 2147483645 bytes into a region of size 271 [-Werror=format-truncation=] IIRC, this is only affecting GCC when building for Arm32 *and* when the optimizer is enabled. If so, it would be good to add more details in the commit message. I would also suggest to link to the bug reported on Debian. Cheers, Signed-off-by: Bertrand Marquis <bertrand.marquis@xxxxxxx> --- tools/xenpmd/xenpmd.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/xenpmd/xenpmd.c b/tools/xenpmd/xenpmd.c index 35fd1c931a..12b82cf43e 100644 --- a/tools/xenpmd/xenpmd.c +++ b/tools/xenpmd/xenpmd.c @@ -102,6 +102,7 @@ FILE *get_next_battery_file(DIR *battery_dir, FILE *file = 0; struct dirent *dir_entries; char file_name[284]; + int ret;do{ @@ -111,11 +112,15 @@ FILE *get_next_battery_file(DIR *battery_dir, if ( strlen(dir_entries->d_name) < 4 ) continue; if ( battery_info_type == BIF ) - snprintf(file_name, sizeof(file_name), BATTERY_INFO_FILE_PATH, + ret = snprintf(file_name, sizeof(file_name), BATTERY_INFO_FILE_PATH, dir_entries->d_name); else - snprintf(file_name, sizeof(file_name), BATTERY_STATE_FILE_PATH, + ret = snprintf(file_name, sizeof(file_name), BATTERY_STATE_FILE_PATH, dir_entries->d_name); + /* This should not happen but is needed to pass gcc checks */ + if (ret < 0) + continue; + file_name[sizeof(file_name) - 1] = '\0'; file = fopen(file_name, "r"); } while ( !file ); Cheers, -- Julien Grall
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |