From fa5acc17430adb69293d8a04c4dec9848a73ae1f Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 21 Apr 2023 14:57:22 +0200 Subject: [PATCH] radix: add debug validation to assist scan-build util-radix-tree.c:595:34: warning: Access to field 'stream' results in a dereference of a null pointer (loaded from field 'prefix') [core.NullDereference] if ((temp = (stream[i] ^ bottom_node->prefix->stream[i])) == 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ util-radix-tree.c:717:30: warning: Access to field 'stream' results in a dereference of a null pointer (loaded from field 'prefix') [core.NullDereference] if (SC_RADIX_BITTEST(bottom_node->prefix->stream[differ_bit >> 3], ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./util-radix-tree.h:27:34: note: expanded from macro 'SC_RADIX_BITTEST' #define SC_RADIX_BITTEST(x, y) ((x) & (y)) ^ 2 warnings generated. --- src/util-radix-tree.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/util-radix-tree.c b/src/util-radix-tree.c index 6192bd480b..654b499e1b 100644 --- a/src/util-radix-tree.c +++ b/src/util-radix-tree.c @@ -33,6 +33,7 @@ #include "util-byte.h" #include "util-cidr.h" #include "util-print.h" +#include "util-validate.h" /** * \brief Allocates and returns a new instance of SCRadixUserData. @@ -588,6 +589,9 @@ static SCRadixNode *SCRadixAddKey( * the prefix */ bottom_node = node; + DEBUG_VALIDATE_BUG_ON(bottom_node == NULL); + DEBUG_VALIDATE_BUG_ON(bottom_node->prefix == NULL); + /* get the first bit position where the ips differ */ check_bit = (node->bit < bitlen)? node->bit: bitlen; for (i = 0; (i * 8) < check_bit; i++) {