From: Victor Julien Date: Tue, 26 Apr 2022 19:47:37 +0000 (+0200) Subject: detect/pcre: assist code analyzer around pointer logic X-Git-Tag: suricata-6.0.6~82 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9796c59b50507b41cce412841ec360f69b28585e;p=thirdparty%2Fsuricata.git detect/pcre: assist code analyzer around pointer logic 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) --- diff --git a/src/detect-pcre.c b/src/detect-pcre.c index 7b73a5251d..5644b55231 100644 --- a/src/detect-pcre.c +++ b/src/detect-pcre.c @@ -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);