]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Fix missing use of MpmAddPid()
authorKen Steele <ken@tilera.com>
Mon, 17 Nov 2014 15:24:27 +0000 (10:24 -0500)
committerVictor Julien <victor@inliniac.net>
Thu, 15 Jan 2015 10:52:03 +0000 (11:52 +0100)
Found by Victor using ASAN. One place was not checking to resize the
pid array before adding a new PID.

src/util-mpm-ac.c

index 7df1caa2a9bcdc49fb180317270845720a04f65b..01263d177f370e4aeb97447b43c13b2fccdcfd4b 100644 (file)
@@ -1377,8 +1377,7 @@ uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
                         } else {
                             pmq->pattern_id_bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
                             bitarray[(lower_pid) / 8] |= (1 << ((lower_pid) % 8));
-                            pmq->pattern_id_array[pmq->pattern_id_array_cnt++] = lower_pid;
-
+                            MpmAddPid(pmq, lower_pid);
                             MpmAddSids(pmq, pid_pat_list[lower_pid].sids, pid_pat_list[lower_pid].sids_size);
                         }
                         matches++;
@@ -1388,8 +1387,7 @@ uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
                         } else {
                             pmq->pattern_id_bitarray[(pids[k]) / 8] |= (1 << ((pids[k]) % 8));
                             bitarray[pids[k] / 8] |= (1 << (pids[k] % 8));
-                            pmq->pattern_id_array[pmq->pattern_id_array_cnt++] = pids[k];
-
+                            MpmAddPid(pmq, pids[k]);
                             MpmAddSids(pmq, pid_pat_list[pids[k]].sids, pid_pat_list[pids[k]].sids_size);
                         }
                         matches++;