GCC 14.1.1 of Fedora 41 thinks that 'i' can be in a full range and so 8 bytes is not enough to print it.
lib/match.c: In function 'match_format': lib/match.c:1631:45: error: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 8 1631 | snprintf(str_i, sizeof(str_i), "%d", i); | ^~ lib/match.c:1631:44: note: directive argument in the range [-2147483646, 1] 1631 | snprintf(str_i, sizeof(str_i), "%d", i); | ^~~~ lib/match.c:1631:13: note: 'snprintf' output between 2 and 12 bytes into a destination of size 8 1631 | snprintf(str_i, sizeof(str_i), "%d", i); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In practice that value can't be larger than 2, but it's not a performance critical code, so let's just increase the size to a maximum 12. Signed-off-by: Ilya Maximets <i.maxim...@ovn.org> --- lib/match.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/match.c b/lib/match.c index 0b9dc4278..9b7e06e0c 100644 --- a/lib/match.c +++ b/lib/match.c @@ -1618,7 +1618,7 @@ match_format(const struct match *match, ds_put_char(s, ','); } for (i = 0; i < FLOW_MAX_VLAN_HEADERS; i++) { - char str_i[8]; + char str_i[12]; if (!wc->masks.vlans[i].tci) { break; -- 2.45.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev