]> 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, 4 May 2022 16:56:40 +0000 (18:56 +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 f0a7798c9d221e801859a3f3e089d645cbd9e366..8bbdf56ea814c83e660753eb94658e6efecb6a1a 100644 (file)
@@ -353,8 +353,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);