From 2d21ec49b6bf6b8286433c061b10f5ec398b40a6 Mon Sep 17 00:00:00 2001 From: firewave Date: Sun, 22 Mar 2026 23:58:31 +0100 Subject: [PATCH 1/4] fixed #14619 - fixed potential memory leak using `--rule` --- lib/regex.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/regex.cpp b/lib/regex.cpp index 6ad9ad440b0..af3bf44e7cc 100644 --- a/lib/regex.cpp +++ b/lib/regex.cpp @@ -167,7 +167,7 @@ namespace { ~PcreRegex() override { if (mExtra) { - pcre_free(mExtra); + pcre_free_study(mExtra); mExtra = nullptr; } if (mRe) { From e10016f0005dda7f465fc5f27d6abd236fe1c6bc Mon Sep 17 00:00:00 2001 From: firewave Date: Sun, 22 Mar 2026 23:59:37 +0100 Subject: [PATCH 2/4] valgrind.yml: run `TestRegEx` --- .github/workflows/valgrind.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 9a6026aa25b..81d30458c91 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -51,7 +51,7 @@ jobs: - name: Run valgrind run: | ec=0 - valgrind --error-limit=yes --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --suppressions=valgrind/testrunner.supp --gen-suppressions=all --log-fd=9 --error-exitcode=42 ./testrunner TestGarbage TestOther TestSimplifyTemplate 9>memcheck.log || ec=1 + valgrind --error-limit=yes --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --suppressions=valgrind/testrunner.supp --gen-suppressions=all --log-fd=9 --error-exitcode=42 ./testrunner TestGarbage TestOther TestSimplifyTemplate TestRegEx 9>memcheck.log || ec=1 cat memcheck.log exit $ec # TODO: debuginfod.ubuntu.com is currently not responding to any requests causing it to run into a 40(!) minute timeout From 92b177a28c61bccbda43128faea8d74ac6841b79 Mon Sep 17 00:00:00 2001 From: firewave Date: Mon, 23 Mar 2026 00:00:23 +0100 Subject: [PATCH 3/4] removed LSAN suppression --- .github/workflows/asan.yml | 2 -- lsan-suppr.txt | 1 - 2 files changed, 3 deletions(-) delete mode 100644 lsan-suppr.txt diff --git a/.github/workflows/asan.yml b/.github/workflows/asan.yml index 38e90cb760a..4609aa88621 100644 --- a/.github/workflows/asan.yml +++ b/.github/workflows/asan.yml @@ -23,7 +23,6 @@ jobs: env: QT_VERSION: 6.10.0 ASAN_OPTIONS: detect_stack_use_after_return=1 - LSAN_OPTIONS: suppressions=lsan-suppr.txt:print_suppressions=0 # TODO: figure out why there are cache misses with PCH enabled CCACHE_SLOPPINESS: pch_defines,time_macros @@ -100,7 +99,6 @@ jobs: - name: Run CTest run: | - cp lsan-suppr.txt cmake.output/bin ctest --test-dir cmake.output --output-on-failure -j$(nproc) - name: Run test/cli diff --git a/lsan-suppr.txt b/lsan-suppr.txt deleted file mode 100644 index bf8389f247e..00000000000 --- a/lsan-suppr.txt +++ /dev/null @@ -1 +0,0 @@ -leak:libpcre.so \ No newline at end of file From 6aa292b9652c34ae15d52f137373d5ce7b1539f9 Mon Sep 17 00:00:00 2001 From: firewave Date: Tue, 24 Mar 2026 07:17:40 +0100 Subject: [PATCH 4/4] fixed #14620 - add suppression for valgrind false positive --- .github/workflows/valgrind.yml | 2 +- valgrind/testrunner.supp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 81d30458c91..e0192351906 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -51,7 +51,7 @@ jobs: - name: Run valgrind run: | ec=0 - valgrind --error-limit=yes --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --suppressions=valgrind/testrunner.supp --gen-suppressions=all --log-fd=9 --error-exitcode=42 ./testrunner TestGarbage TestOther TestSimplifyTemplate TestRegEx 9>memcheck.log || ec=1 + valgrind --error-limit=yes --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --suppressions=valgrind/testrunner.supp --gen-suppressions=all -s --log-fd=9 --error-exitcode=42 ./testrunner TestGarbage TestOther TestSimplifyTemplate TestRegEx 9>memcheck.log || ec=1 cat memcheck.log exit $ec # TODO: debuginfod.ubuntu.com is currently not responding to any requests causing it to run into a 40(!) minute timeout diff --git a/valgrind/testrunner.supp b/valgrind/testrunner.supp index 98e30d241ce..558e74a2aca 100644 --- a/valgrind/testrunner.supp +++ b/valgrind/testrunner.supp @@ -14,3 +14,9 @@ obj:* obj:* } +{ + TestRegEx::partialmatch false positive + Memcheck:Cond + obj:* + obj:* +}