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.

(cherry picked from commit fa5acc1743)
pull/8760/head
Victor Julien 3 years ago
parent 88b305b539
commit 07639c96f2

@ -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.
@ -591,6 +592,9 @@ static SCRadixNode *SCRadixAddKey(uint8_t *key_stream, uint16_t key_bitlen,
* 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++) {

Loading…
Cancel
Save