From 9586aed43b0c79becc0e30cd3705f9729cd8b81c Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 25 Apr 2023 18:06:54 +0200 Subject: [PATCH] scan-build: fix potential 0 size allocation warnings --- src/detect-flowbits.c | 4 ++++ src/util-pool.c | 4 ++++ src/util-radix-tree.c | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/detect-flowbits.c b/src/detect-flowbits.c index 75c6c9603f..e4cae2d7e9 100644 --- a/src/detect-flowbits.c +++ b/src/detect-flowbits.c @@ -111,6 +111,10 @@ static int FlowbitOrAddData(DetectEngineCtx *de_ctx, DetectFlowbitsData *cd, cha next: arrptr = NULL; } + if (i == 0) { + SCLogError("No valid flowbits specified"); + return -1; + } cd->or_list_size = i; cd->or_list = SCCalloc(cd->or_list_size, sizeof(uint32_t)); diff --git a/src/util-pool.c b/src/util-pool.c index 7d2f37a74e..b8fe4abb4f 100644 --- a/src/util-pool.c +++ b/src/util-pool.c @@ -101,6 +101,10 @@ Pool *PoolInit(uint32_t size, uint32_t prealloc_size, uint32_t elt_size, sc_errno = SC_EINVAL; goto error; } + if (elt_size == 0 && Alloc == NULL) { + sc_errno = SC_EINVAL; + goto error; + } /* setup the filter */ p = SCMalloc(sizeof(Pool)); diff --git a/src/util-radix-tree.c b/src/util-radix-tree.c index 654b499e1b..3d750675af 100644 --- a/src/util-radix-tree.c +++ b/src/util-radix-tree.c @@ -133,7 +133,7 @@ static SCRadixPrefix *SCRadixCreatePrefix(uint8_t *key_stream, { SCRadixPrefix *prefix = NULL; - if ((key_bitlen % 8 != 0)) { + if (key_bitlen == 0 || (key_bitlen % 8 != 0)) { SCLogError("Invalid argument bitlen - %d", key_bitlen); return NULL; }