From a8217d288afe91efe8d6e222fd5b1788cec6c976 Mon Sep 17 00:00:00 2001 From: Alexey Simakov Date: Tue, 28 May 2024 19:36:58 +0300 Subject: [PATCH] util/radix-tree: fix potential dereference of nullptr Fix potential dereferece of nullptr in case of unsuccessful allocation of memory leak for tree nodes Bug: #7049 --- src/util-radix-tree.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/util-radix-tree.c b/src/util-radix-tree.c index 0f570fdbc9..1b378338f7 100644 --- a/src/util-radix-tree.c +++ b/src/util-radix-tree.c @@ -700,6 +700,13 @@ static SCRadixNode *SCRadixAddKeyInternal(uint8_t *key_stream, uint8_t key_bitle return NULL; } new_node = SCRadixCreateNode(); + + if (new_node == NULL) { + SCRadixReleasePrefix(prefix, tree); + sc_errno = SC_ENOMEM; + return NULL; + } + new_node->prefix = prefix; new_node->bit = prefix->bitlen; @@ -730,6 +737,13 @@ static SCRadixNode *SCRadixAddKeyInternal(uint8_t *key_stream, uint8_t key_bitle * detail below) */ } else { inter_node = SCRadixCreateNode(); + + if (inter_node == NULL) { + SCRadixReleaseNode(new_node, tree); + sc_errno = SC_ENOMEM; + return NULL; + } + inter_node->prefix = NULL; inter_node->bit = differ_bit; inter_node->parent = node->parent; -- 2.47.2