]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect: fix scan-build warning
authorVictor Julien <victor@inliniac.net>
Tue, 5 Apr 2016 11:05:08 +0000 (13:05 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 5 Apr 2016 11:05:08 +0000 (13:05 +0200)
detect-engine-siggroup.c:700:38: warning: Call to 'malloc' has an allocation size of 0 bytes
    sgh->non_mpm_other_store_array = SCMalloc(non_mpm * sizeof(SignatureNonMpmStore));
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./util-mem.h:177:14: note: expanded from macro 'SCMalloc'
    ptrmem = malloc((a)); \
             ^~~~~~~~~~~
1 warning generated.

src/detect-engine-siggroup.c

index 60217690835f0ab76ca054788e06b01d0a12228e..b3b40ab127be3b6e49e1eaeef5f722f468ef341a 100644 (file)
@@ -697,13 +697,17 @@ int SigGroupHeadBuildNonMpmArray(DetectEngineCtx *de_ctx, SigGroupHead *sgh)
         return 0;
     }
 
-    sgh->non_mpm_other_store_array = SCMalloc(non_mpm * sizeof(SignatureNonMpmStore));
-    BUG_ON(sgh->non_mpm_other_store_array == NULL);
-    memset(sgh->non_mpm_other_store_array, 0, non_mpm * sizeof(SignatureNonMpmStore));
+    if (non_mpm > 0) {
+        sgh->non_mpm_other_store_array = SCMalloc(non_mpm * sizeof(SignatureNonMpmStore));
+        BUG_ON(sgh->non_mpm_other_store_array == NULL);
+        memset(sgh->non_mpm_other_store_array, 0, non_mpm * sizeof(SignatureNonMpmStore));
+    }
 
-    sgh->non_mpm_syn_store_array = SCMalloc(non_mpm_syn * sizeof(SignatureNonMpmStore));
-    BUG_ON(sgh->non_mpm_syn_store_array == NULL);
-    memset(sgh->non_mpm_syn_store_array, 0, non_mpm_syn * sizeof(SignatureNonMpmStore));
+    if (non_mpm_syn > 0) {
+        sgh->non_mpm_syn_store_array = SCMalloc(non_mpm_syn * sizeof(SignatureNonMpmStore));
+        BUG_ON(sgh->non_mpm_syn_store_array == NULL);
+        memset(sgh->non_mpm_syn_store_array, 0, non_mpm_syn * sizeof(SignatureNonMpmStore));
+    }
 
     for (sig = 0; sig < sgh->sig_cnt; sig++) {
         s = sgh->match_array[sig];
@@ -713,12 +717,14 @@ int SigGroupHeadBuildNonMpmArray(DetectEngineCtx *de_ctx, SigGroupHead *sgh)
         if (s->mpm_sm == NULL || (s->flags & SIG_FLAG_MPM_NEG)) {
             if (!(DetectFlagsSignatureNeedsSynPackets(s))) {
                 BUG_ON(sgh->non_mpm_other_store_cnt >= non_mpm);
+                BUG_ON(sgh->non_mpm_other_store_array == NULL);
                 sgh->non_mpm_other_store_array[sgh->non_mpm_other_store_cnt].id = s->num;
                 sgh->non_mpm_other_store_array[sgh->non_mpm_other_store_cnt].mask = s->mask;
                 sgh->non_mpm_other_store_cnt++;
             }
 
             BUG_ON(sgh->non_mpm_syn_store_cnt >= non_mpm_syn);
+            BUG_ON(sgh->non_mpm_syn_store_array == NULL);
             sgh->non_mpm_syn_store_array[sgh->non_mpm_syn_store_cnt].id = s->num;
             sgh->non_mpm_syn_store_array[sgh->non_mpm_syn_store_cnt].mask = s->mask;
             sgh->non_mpm_syn_store_cnt++;