xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] tools: fix gcc 8.1 build
@ 2018-07-26 14:58 Wei Liu
  2018-07-26 14:58 ` [PATCH 1/2] tools: update ipxe changeset Wei Liu
  2018-07-26 14:58 ` [PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work Wei Liu
  0 siblings, 2 replies; 5+ messages in thread
From: Wei Liu @ 2018-07-26 14:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu, Ian Jackson

Wei Liu (2):
  tools: update ipxe changeset
  xenpmd: make 32 bit gcc 8.1 non-debug build work

 tools/firmware/etherboot/Makefile |  2 +-
 tools/xenpmd/xenpmd.c             | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] tools: update ipxe changeset
  2018-07-26 14:58 [PATCH 0/2] tools: fix gcc 8.1 build Wei Liu
@ 2018-07-26 14:58 ` Wei Liu
  2018-08-20 10:26   ` Ian Jackson
  2018-07-26 14:58 ` [PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work Wei Liu
  1 sibling, 1 reply; 5+ messages in thread
From: Wei Liu @ 2018-07-26 14:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu, Ian Jackson

This placates gcc 8.1. The commit comes from ipxe master branch as of
July 25, 2018.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 tools/firmware/etherboot/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/firmware/etherboot/Makefile b/tools/firmware/etherboot/Makefile
index 4de6d24a13..3868f876ea 100644
--- a/tools/firmware/etherboot/Makefile
+++ b/tools/firmware/etherboot/Makefile
@@ -10,7 +10,7 @@ else
 IPXE_GIT_URL ?= git://git.ipxe.org/ipxe.git
 endif
 
-IPXE_GIT_TAG := 356f6c1b64d7a97746d1816cef8ca22bdd8d0b5d
+IPXE_GIT_TAG := d2063b7693e0e35db97b2264aa987eb6341ae779
 
 IPXE_TARBALL_URL ?= $(XEN_EXTFILES_URL)/ipxe-git-$(IPXE_GIT_TAG).tar.gz
 
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work
  2018-07-26 14:58 [PATCH 0/2] tools: fix gcc 8.1 build Wei Liu
  2018-07-26 14:58 ` [PATCH 1/2] tools: update ipxe changeset Wei Liu
@ 2018-07-26 14:58 ` Wei Liu
  2018-08-20 10:24   ` Ian Jackson
  1 sibling, 1 reply; 5+ messages in thread
From: Wei Liu @ 2018-07-26 14:58 UTC (permalink / raw)
  To: Xen-devel; +Cc: Wei Liu, Ian Jackson

32 bit gcc 8.1 non-debug build yields:

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));
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

All info->* used in calculation are 32 bytes long, and the parsing
code makes sure they are null-terminated, so the end result of the
expression won't exceed 255, which should be able to be fit into 3
bytes in hexadecimal format.

Add an assertion to make gcc happy.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 tools/xenpmd/xenpmd.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tools/xenpmd/xenpmd.c b/tools/xenpmd/xenpmd.c
index 56412a9a81..1c801caa71 100644
--- a/tools/xenpmd/xenpmd.c
+++ b/tools/xenpmd/xenpmd.c
@@ -40,6 +40,7 @@
 #include <unistd.h>
 #include <sys/stat.h>
 #include <xenstore.h>
+#include <assert.h>
 
 /* #define RUN_STANDALONE */
 #define RUN_IN_SIMULATE_MODE
@@ -345,18 +346,17 @@ void write_ulong_lsb_first(char *temp_val, unsigned long val)
 void write_battery_info_to_xenstore(struct battery_info *info)
 {
     char val[1024], string_info[256];
+    unsigned int len;
 
     xs_mkdir(xs, XBT_NULL, "/pm");
    
     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", 
-             (unsigned int)(9*4 +
-                            strlen(info->model_number) +
-                            strlen(info->serial_number) +
-                            strlen(info->battery_type) +
-                            strlen(info->oem_info) + 4));
+    len = 9 * 4 + strlen(info->model_number) + strlen(info->serial_number) +
+          strlen(info->battery_type) + strlen(info->oem_info) + 4;
+    assert(len < 255);
+    snprintf(val, 3, "%02x", len);
     write_ulong_lsb_first(val+2, info->present);
     write_ulong_lsb_first(val+10, info->design_capacity);
     write_ulong_lsb_first(val+18, info->last_full_capacity);
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work
  2018-07-26 14:58 ` [PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work Wei Liu
@ 2018-08-20 10:24   ` Ian Jackson
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Jackson @ 2018-08-20 10:24 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel

Wei Liu writes ("[PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work"):
> 32 bit gcc 8.1 non-debug build yields:
...
>      /* write 9 dwords (so 9*4) + length of 4 strings + 4 null terminators */
> -    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));

This is pretty unpleasant!

> +    len = 9 * 4 + strlen(info->model_number) + strlen(info->serial_number) +
> +          strlen(info->battery_type) + strlen(info->oem_info) + 4;
> +    assert(len < 255);
> +    snprintf(val, 3, "%02x", len);

This is slightly less unpleasant, I guess...

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>

Thanks,
Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] tools: update ipxe changeset
  2018-07-26 14:58 ` [PATCH 1/2] tools: update ipxe changeset Wei Liu
@ 2018-08-20 10:26   ` Ian Jackson
  0 siblings, 0 replies; 5+ messages in thread
From: Ian Jackson @ 2018-08-20 10:26 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel

Wei Liu writes ("[PATCH 1/2] tools: update ipxe changeset"):
> This placates gcc 8.1. The commit comes from ipxe master branch as of
> July 25, 2018.

Fine, whatever.  FTR, I don't think it is useful to ask for an ack of
this kind of patch, assuming the commit is indeed from ipxe master.
(And if some kind of review were needed, we would need much more
information in the commit message about what changed.)

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>

Thanks,
Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-08-20 10:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-26 14:58 [PATCH 0/2] tools: fix gcc 8.1 build Wei Liu
2018-07-26 14:58 ` [PATCH 1/2] tools: update ipxe changeset Wei Liu
2018-08-20 10:26   ` Ian Jackson
2018-07-26 14:58 ` [PATCH 2/2] xenpmd: make 32 bit gcc 8.1 non-debug build work Wei Liu
2018-08-20 10:24   ` Ian Jackson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).