From 075899dee063a690219c0d3e7c2d4d05136cac08 Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Sun, 18 Aug 2024 12:57:34 +0200 Subject: [PATCH 1/2] lib: Fix compilation warning Don't store unnecessary `len` returned by snprintf and snprintfrr function. Fixes the following compilation warnings: ``` error 15-Aug-2024 13:54:10 In file included from lib/bfd.c:16: error 15-Aug-2024 13:54:10 In file included from ./lib/zclient.h:22: error 15-Aug-2024 13:54:10 In file included from ./lib/nexthop.h:14: error 15-Aug-2024 13:54:10 ./lib/srv6.h:338:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] error 15-Aug-2024 13:54:10 len += snprintf(str + len, size - len, " USP"); error 15-Aug-2024 13:54:10 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error 15-Aug-2024 13:54:10 ./lib/srv6.h:343:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] error 15-Aug-2024 13:54:10 len += snprintfrr(str + len, size - len, " nh6 %pI6", &ctx->nh6); error 15-Aug-2024 13:54:10 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error 15-Aug-2024 13:54:10 ./lib/srv6.h:347:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] error 15-Aug-2024 13:54:10 len += snprintfrr(str + len, size - len, " nh4 %pI4", &ctx->nh4); error 15-Aug-2024 13:54:10 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error 15-Aug-2024 13:54:10 ./lib/srv6.h:354:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] error 15-Aug-2024 13:54:10 len += snprintf(str + len, size - len, " vrf_id %u", error 15-Aug-2024 13:54:10 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error 15-Aug-2024 13:54:10 ./lib/srv6.h:367:3: warning: Value stored to 'len' is never read [deadcode.DeadStores] error 15-Aug-2024 13:54:10 len += snprintf(str + len, size - len, " unknown(%s)", __func__); error 15-Aug-2024 13:54:10 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` Signed-off-by: Carmine Scarpitta --- lib/srv6.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/srv6.h b/lib/srv6.h index 03ada7fcfc..f25c5cfcaa 100644 --- a/lib/srv6.h +++ b/lib/srv6.h @@ -335,24 +335,23 @@ static inline const char *srv6_sid_ctx2str(char *str, size_t size, break; case ZEBRA_SEG6_LOCAL_ACTION_END: - len += snprintf(str + len, size - len, " USP"); + snprintf(str + len, size - len, " USP"); break; case ZEBRA_SEG6_LOCAL_ACTION_END_X: case ZEBRA_SEG6_LOCAL_ACTION_END_DX6: - len += snprintfrr(str + len, size - len, " nh6 %pI6", &ctx->nh6); + snprintfrr(str + len, size - len, " nh6 %pI6", &ctx->nh6); break; case ZEBRA_SEG6_LOCAL_ACTION_END_DX4: - len += snprintfrr(str + len, size - len, " nh4 %pI4", &ctx->nh4); + snprintfrr(str + len, size - len, " nh4 %pI4", &ctx->nh4); break; case ZEBRA_SEG6_LOCAL_ACTION_END_T: case ZEBRA_SEG6_LOCAL_ACTION_END_DT6: case ZEBRA_SEG6_LOCAL_ACTION_END_DT4: case ZEBRA_SEG6_LOCAL_ACTION_END_DT46: - len += snprintf(str + len, size - len, " vrf_id %u", - ctx->vrf_id); + snprintf(str + len, size - len, " vrf_id %u", ctx->vrf_id); break; case ZEBRA_SEG6_LOCAL_ACTION_END_DX2: @@ -364,7 +363,7 @@ static inline const char *srv6_sid_ctx2str(char *str, size_t size, case ZEBRA_SEG6_LOCAL_ACTION_END_AM: case ZEBRA_SEG6_LOCAL_ACTION_END_BPF: default: - len += snprintf(str + len, size - len, " unknown(%s)", __func__); + snprintf(str + len, size - len, " unknown(%s)", __func__); } return str; From 354f9e9009326d695edf4b39d6fcc5feb9f3e8cf Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Sun, 18 Aug 2024 13:02:06 +0200 Subject: [PATCH 2/2] zebra: Fix compilation warning Make sure the variable `srv6` is not NULL before dereferencing it. Fixes the following compilation warnings: ``` error 15-Aug-2024 14:20:01 zebra/zebra_srv6_vty.c:974:8: warning: Access to field 'locators' results in a dereference of a null pointer (loaded from variable 'srv6') [core.NullDereference] error 15-Aug-2024 14:20:01 for (ALL_LIST_ELEMENTS_RO(srv6->locators, node, locator)) { error 15-Aug-2024 14:20:01 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error 15-Aug-2024 14:20:01 ./lib/linklist.h:345:11: note: expanded from macro 'ALL_LIST_ELEMENTS_RO' error 15-Aug-2024 14:20:01 (node) = listhead(list), ((data) = NULL); \ error 15-Aug-2024 14:20:01 ^~~~~~~~~~~~~~ error 15-Aug-2024 14:20:01 ./lib/linklist.h:63:22: note: expanded from macro 'listhead' error 15-Aug-2024 14:20:01 #define listhead(X) ((X) ? ((X)->head) : NULL) error 15-Aug-2024 14:20:01 ^ ``` Signed-off-by: Carmine Scarpitta --- zebra/zebra_srv6_vty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zebra/zebra_srv6_vty.c b/zebra/zebra_srv6_vty.c index c664a9c69f..5a80524149 100644 --- a/zebra/zebra_srv6_vty.c +++ b/zebra/zebra_srv6_vty.c @@ -969,7 +969,7 @@ static int zebra_sr_config(struct vty *vty) &srv6->encap_src_addr); } } - if (zebra_srv6_is_enable()) { + if (srv6 && zebra_srv6_is_enable()) { vty_out(vty, " locators\n"); for (ALL_LIST_ELEMENTS_RO(srv6->locators, node, locator)) { inet_ntop(AF_INET6, &locator->prefix.prefix,