]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
flow/manager: fix prealloc unhandled division by 0
authorJuliana Fajardini <jufajardini@oisf.net>
Mon, 20 Mar 2023 14:56:58 +0000 (11:56 -0300)
committerJuliana Fajardini <jufajardini@oisf.net>
Tue, 28 Mar 2023 13:39:16 +0000 (10:39 -0300)
If flow.prealloc was set to zero in our yaml config, this led to
a floating point exception in the flow manager.

Bug: #5919.
(cherry picked from commit 5baa6c0024c7e49eb28e84546c286a5fd50fe303)

src/flow-manager.c

index bb1e720fcb311637bcaadba5f7cdac1b9a5c9557..e9b37c294803900e4d5619a1caf0a3ebc6ae42b0 100644 (file)
@@ -822,7 +822,7 @@ static TmEcode FlowManager(ThreadVars *th_v, void *thread_data)
         if (ts_ms >= next_run_ms) {
             if (ftd->instance == 0) {
                 const uint32_t sq_len = FlowSpareGetPoolSize();
-                const uint32_t spare_perc = sq_len * 100 / flow_config.prealloc;
+                const uint32_t spare_perc = sq_len * 100 / MAX(flow_config.prealloc, 1);
                 /* see if we still have enough spare flows */
                 if (spare_perc < 90 || spare_perc > 110) {
                     FlowSparePoolUpdate(sq_len);