Skip to content

Commit 49914d0

Browse files
committed
gcc-parser: drop parsed sufffix from msg text
... in GCC_ANALYZER_WARNING reports
1 parent aeec3d2 commit 49914d0

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

gcc-parser.cc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ class PostProcessor {
540540
public:
541541
PostProcessor():
542542
reGccAnalCoreEvt_("^(.*) (\\[-Wanalyzer-[A-Za-z0-9-]+\\])$"),
543-
reGccAnalCwe_("^.* \\[CWE-([0-9]+)\\]$")
543+
reGccAnalCwe_("^(.*) \\[CWE-([0-9]+)\\]$")
544544
{
545545
}
546546

@@ -568,11 +568,16 @@ void PostProcessor::transGccAnal(Defect *pDef) {
568568
// COMPILER_WARNING -> GCC_ANALYZER_WARNING
569569
pDef->checker = "GCC_ANALYZER_WARNING";
570570
keyEvt.event += sm[/* id */ 2];
571+
// this invalidates sm
572+
keyEvt.msg = sm[/* msg */ 1];
571573

572574
// pick CWE number if available
573-
const std::string rawMsg = sm[/* msg */ 1];
574-
if (boost::regex_match(rawMsg, sm, reGccAnalCwe_))
575-
pDef->cwe = parse_int(sm[/* cwe */ 1]);
575+
if (!boost::regex_match(keyEvt.msg, sm, reGccAnalCwe_))
576+
return;
577+
578+
pDef->cwe = parse_int(sm[/* cwe */ 2]);
579+
// this invalidates sm
580+
keyEvt.msg = sm[/* msg */ 1];
576581
}
577582

578583
void PostProcessor::apply(Defect *pDef) {

tests/csgrep/57-gcc-parser-gcc-analyzer-curl-stdout.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Error: COMPILER_WARNING:
6262

6363
Error: GCC_ANALYZER_WARNING (CWE-690):
6464
/builddir/build/BUILD/curl-7.70.0/lib/multi.c: scope_hint: In function 'multi_runsingle'
65-
/builddir/build/BUILD/curl-7.70.0/lib/multi.c:1701:54: warning[-Wanalyzer-null-dereference]: dereference of NULL 'conn' [CWE-690] [-Wanalyzer-null-dereference]
65+
/builddir/build/BUILD/curl-7.70.0/lib/multi.c:1701:54: warning[-Wanalyzer-null-dereference]: dereference of NULL 'conn'
6666
# 1701 | dns = Curl_fetch_addr(conn, hostname, (int)conn->port);
6767
# | ~~~~^~~~~~
6868
/builddir/build/BUILD/curl-7.70.0/lib/multi.c:2962:11: note: (1) entry to 'curl_multi_socket_all'
@@ -245,7 +245,7 @@ cc1: note: (44) ...to here
245245

246246
Error: GCC_ANALYZER_WARNING (CWE-690):
247247
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c: scope_hint: In function 'tool_header_cb'
248-
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c:241:7: warning[-Wanalyzer-null-argument]: use of NULL '<unknown>' where non-null expected [CWE-690] [-Wanalyzer-null-argument]
248+
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c:241:7: warning[-Wanalyzer-null-argument]: use of NULL '<unknown>' where non-null expected
249249
# 241 | fwrite(ptr, cb, 1, outs->stream);
250250
# | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
251251
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c:56:8: note: (1) entry to 'tool_header_cb'
@@ -438,7 +438,7 @@ Error: COMPILER_WARNING:
438438

439439
Error: GCC_ANALYZER_WARNING (CWE-690):
440440
/builddir/build/BUILD/curl-7.70.0/lib/multi.c: scope_hint: In function 'multi_runsingle'
441-
/builddir/build/BUILD/curl-7.70.0/lib/multi.c:1701:54: warning[-Wanalyzer-null-dereference]: dereference of NULL 'conn' [CWE-690] [-Wanalyzer-null-dereference]
441+
/builddir/build/BUILD/curl-7.70.0/lib/multi.c:1701:54: warning[-Wanalyzer-null-dereference]: dereference of NULL 'conn'
442442
# 1701 | dns = Curl_fetch_addr(conn, hostname, (int)conn->port);
443443
# | ~~~~^~~~~~
444444
/builddir/build/BUILD/curl-7.70.0/lib/multi.c:2962:11: note: (1) entry to 'curl_multi_socket_all'
@@ -621,7 +621,7 @@ cc1: note: (44) ...to here
621621

622622
Error: GCC_ANALYZER_WARNING (CWE-690):
623623
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c: scope_hint: In function 'tool_header_cb'
624-
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c:241:7: warning[-Wanalyzer-null-argument]: use of NULL '<unknown>' where non-null expected [CWE-690] [-Wanalyzer-null-argument]
624+
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c:241:7: warning[-Wanalyzer-null-argument]: use of NULL '<unknown>' where non-null expected
625625
# 241 | fwrite(ptr, cb, 1, outs->stream);
626626
# | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
627627
/builddir/build/BUILD/curl-7.70.0/src/tool_cb_hdr.c:56:8: note: (1) entry to 'tool_header_cb'

tests/csgrep/63-gcc-parser-checker-lang-stdout.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
"line": 60,
8585
"column": 16,
8686
"event": "warning[-Wanalyzer-malloc-leak]",
87-
"message": "leak of '<unknown>' [CWE-401] [-Wanalyzer-malloc-leak]",
87+
"message": "leak of '<unknown>'",
8888
"verbosity_level": "0"
8989
},
9090
{

0 commit comments

Comments
 (0)