]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/pcre: assist code analyzer around pointer logic
authorVictor Julien <vjulien@oisf.net>
Tue, 26 Apr 2022 19:47:37 +0000 (21:47 +0200)
committerVictor Julien <vjulien@oisf.net>
Wed, 27 Apr 2022 10:18:30 +0000 (12:18 +0200)
cppcheck:

src/detect-pcre.c:381:27: warning: Either the condition 'pcap' is redundant or there is overflow in pointer subtraction. [nullPointerArithmeticRedundantCheck]
            cut_capture = MIN((pcap - regexstr), (fcap - regexstr));
                          ^
src/detect-pcre.c:378:18: note: Assuming that condition 'pcap' is not redundant
        else if (pcap && !fcap)
                 ^
src/detect-pcre.c:381:27: note: Null pointer subtraction
            cut_capture = MIN((pcap - regexstr), (fcap - regexstr));
                          ^

Bug: #5291.

src/detect-pcre.c

index 6f89ba846323a4d36e21827cce23f99e3a1586b9..f20b2162472fdd9306406a6d39698cce3748048b 100644 (file)
@@ -377,8 +377,11 @@ static DetectPcreData *DetectPcreParse (DetectEngineCtx *de_ctx,
             cut_capture = fcap - regexstr;
         else if (pcap && !fcap)
             cut_capture = pcap - regexstr;
-        else
+        else {
+            BUG_ON(pcap == NULL); // added to assist cppcheck
+            BUG_ON(fcap == NULL);
             cut_capture = MIN((pcap - regexstr), (fcap - regexstr));
+        }
 
         SCLogDebug("cut_capture %d", cut_capture);