On 2021-11-17 2:23 PM, Roi Dayan wrote:


On 2021-11-17 2:17 PM, David Marchand wrote:
On Wed, Nov 17, 2021 at 1:12 PM Roi Dayan via dev
<[email protected]> wrote:

port is declared as uint16 so use %hu specifier instead of %d.

lib/netdev-vport.c:460:44: error: '%s' directive output may be truncated writing up to 4 bytes into a region of size between 1 and 10 [-Werror=format-truncation=]
       snprintf(namebuf, bufsize, "dst_port_%d%s",
                                            ^~

Out of curiosity, is it due to new checks from a recent compiler?

do you mean if we updated the compiler? than no.
it fails on powerpc machine.



Fixes: 189de33f02b2 ("netdev-vport: reject concomitant incompatible tunnels")
Signed-off-by: Roi Dayan <[email protected]>
Reviewed-by: Eli Britstein <[email protected]>
---
  lib/netdev-vport.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
index 499c0291c933..1c7f55757e9a 100644
--- a/lib/netdev-vport.c
+++ b/lib/netdev-vport.c
@@ -457,7 +457,7 @@ static char *
  vxlan_get_port_ext_gbp_str(uint16_t port, bool gbp,
                             char namebuf[], size_t bufsize)
  {
-    snprintf(namebuf, bufsize, "dst_port_%d%s",
+    snprintf(namebuf, bufsize, "dst_port_%hu%s",
               port, gbp ? "_gbp" : "");

Format for uint16_t is PRIu16.

tested PRIu16 and got the same error. isn't PRIu16 defined as "u" ?


did some more tests.
the test machine is ppc64be.

lib/netdev-vport.c:460:51: note: format string is defined here
     snprintf(namebuf, bufsize, "dst_port_%"PRIu16"%s",
                                                   ^~

seems the compiler now complains on the string.
if i remove the string the compiler doesn't complain with either %d
or PRIu16.



      return namebuf;


_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to