]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
affinity: avoid zero-division in the CPU selector
authorLukas Sismis <lsismis@oisf.net>
Mon, 9 Jun 2025 08:29:11 +0000 (10:29 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 10 Jun 2025 06:36:33 +0000 (08:36 +0200)
Ticket: 7747

src/util-affinity.c

index 8707aa5fdcf76b37a012bdbb8fa68deac6626e62..d037ea8de0482195a9cfe1c2e4420e63242feef5 100644 (file)
@@ -947,10 +947,13 @@ static uint16_t CPUSelectDefault(ThreadsAffinityType *taf)
 {
     uint16_t cpu = taf->lcpu[0];
     int attempts = 0;
-    while (!CPU_ISSET(cpu, &taf->cpu_set) && attempts < 2) {
-        cpu = (cpu + 1) % UtilCpuGetNumProcessorsOnline();
-        if (cpu == 0) {
-            attempts++;
+    uint16_t num_procs = UtilCpuGetNumProcessorsOnline();
+    if (num_procs > 0) {
+        while (!CPU_ISSET(cpu, &taf->cpu_set) && attempts < 2) {
+            cpu = (cpu + 1) % num_procs;
+            if (cpu == 0) {
+                attempts++;
+            }
         }
     }