]> 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>
Tue, 3 May 2022 11:30:20 +0000 (13:30 +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.
(cherry picked from commit 69b8b48b9422279943c083a24e5baf64e1c4aa94)

src/detect-pcre.c

index 7b73a5251d7fdfe6a230731cf13378ead4a4b9dd..5644b55231f0c5a8627b58f88928e0fb30d070aa 100644 (file)
@@ -370,8 +370,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);