diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-virtualization/recipes-extended/xen/files/xen-tools-xenpmd-snprintf.patch | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/meta-virtualization/recipes-extended/xen/files/xen-tools-xenpmd-snprintf.patch')
-rw-r--r-- | external/meta-virtualization/recipes-extended/xen/files/xen-tools-xenpmd-snprintf.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/external/meta-virtualization/recipes-extended/xen/files/xen-tools-xenpmd-snprintf.patch b/external/meta-virtualization/recipes-extended/xen/files/xen-tools-xenpmd-snprintf.patch deleted file mode 100644 index aac7282f..00000000 --- a/external/meta-virtualization/recipes-extended/xen/files/xen-tools-xenpmd-snprintf.patch +++ /dev/null @@ -1,78 +0,0 @@ -From e4d78a67ffbacf30b66464080898227f18f6bf49 Mon Sep 17 00:00:00 2001 -From: Christopher Clark <christopher.w.clark@gmail.com> -Date: Fri, 17 Aug 2018 17:46:10 -0700 -Subject: [PATCH] xenpmd: prevent format-truncation warning with gcc 8.2 + ARM - 32-bit -To: xen-devel@lists.xenproject.org -Cc: ian.jackson@eu.citrix.com, - wei.liu2@citrix.com - -xenpmd writes battery information to xenstore, including a string with a -formatted hex value calculated from summing the lengths of four strings, -plus some constants. - -Each of the four strings has a maximum length of 31 bytes, excluding the -terminating zero byte. The strings are stored in 32-byte arrays in a -struct that is zeroed before it is populated, and logic that writes to -the strings uses strncpy and explicit zero termination. - -The maximum value to be supplied to the xenstore string is: - (9 * 4) + (31 * 4) + 4 , which is 164, ie. 0xa4. - -When used with this value, '%02x' will always fit within 3 bytes, but -gcc 8.2 is apparently not able to deduce this (observed when building -for a 32-bit ARM platform). - -This commit assists the compiler by applying a mask (0xff) to the value, -enabling it to observe a lower maximum value and so pass the truncation -length check. - -Prior to this change, building fails with the compiler warning: - -| xenpmd.c: In function 'write_battery_info_to_xenstore': -| xenpmd.c:354:23: error: '%02x' directive output may be truncated -writing between 2 and 8 bytes into a region of size 3 -[-Werror=format-truncation=] -| snprintf(val, 3, "%02x", -| ^~~~ -| xenpmd.c:354:22: note: directive argument in the range [40, 2147483778] -| snprintf(val, 3, "%02x", -| ^~~~~~ -| xenpmd.c:354:5: note: 'snprintf' output between 3 and 9 bytes into a -destination of size 3 -| snprintf(val, 3, "%02x", -| ^~~~~~~~~~~~~~~~~~~~~~~~ -| (unsigned int)(9*4 + -| ~~~~~~~~~~~~~~~~~~~~ -| strlen(info->model_number) + -| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| strlen(info->serial_number) + -| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| strlen(info->battery_type) + -| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| strlen(info->oem_info) + 4)); -| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| cc1: all warnings being treated as errors - -Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com> ---- - tools/xenpmd/xenpmd.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/tools/xenpmd/xenpmd.c b/tools/xenpmd/xenpmd.c -index 56412a9..0c0787e 100644 ---- a/tools/xenpmd/xenpmd.c -+++ b/tools/xenpmd/xenpmd.c -@@ -350,8 +350,10 @@ void write_battery_info_to_xenstore(struct battery_info *info) - - memset(val, 0, 1024); - memset(string_info, 0, 256); -- /* write 9 dwords (so 9*4) + length of 4 strings + 4 null terminators */ -- snprintf(val, 3, "%02x", -+ /* write 9 dwords (so 9*4) + length of 4 strings + 4 null terminators. -+ * mask informs the compiler that format truncation will not occur. -+ */ -+ snprintf(val, 3, "%02x", 0xff & - (unsigned int)(9*4 + - strlen(info->model_number) + - strlen(info->serial_number) + |