From 0ac47a5b758228abaa7377d7b98dea34f1dce4d0 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Sun, 12 Apr 2026 16:15:01 -0400 Subject: [PATCH] feat: add scan_verify.py + check_coverage.py for all 1258 UNDF indicators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scan_verify.py: structural patch verification for all UNDF registry entries. - Reads UNDF-REGISTRY.json, walks defects/*/patch/*.patch - Checks: UNDF header comment, defective pattern in removed lines, fix signature in added lines (HashSet/unordered_set/HashMap/etc.) - Slug-to-patch filtering prevents cross-contamination in multi-entry dirs - Additive patches (guard insertion) treated as WARN not FAIL - Status: 454 PASS / 441 WARN / 12 FAIL / 300 NO_PATCH / 51 PENDING - 74.2% structural coverage of clonable entries check_coverage.py: CI gate — fails when new registry entries lack patch files. - Any NO_PATCH entry (dir exists but no patch) causes exit code 1 - Designed to run on every commit to catch regressions early - Quality (WARN/PASS) delegated to scan_verify.py Makefile targets added: make scan-verify — verbose structural verification (all 1258 entries) make scan-verify-report — same + writes tests/SCAN-VERIFY-REPORT.md make scan-verify-strict -- also fail on WARN make coverage-check — CI gate for patch presence Completes the three-tier coverage system: unit/integration/functional Java tests (MOADs 0001-0011) + structural patch verification (1258+ UNDF indicators) + coverage CI gate (enforces no indicator left without a patch) --- tests/Makefile | 29 +- tests/SCAN-VERIFY-REPORT.md | 1694 +++++++++++++++++++++++++++++++++++ tests/check_coverage.py | 145 +++ tests/scan_verify.py | 464 ++++++++++ 4 files changed, 2331 insertions(+), 1 deletion(-) create mode 100644 tests/SCAN-VERIFY-REPORT.md create mode 100644 tests/check_coverage.py create mode 100644 tests/scan_verify.py diff --git a/tests/Makefile b/tests/Makefile index 069e22b29..c7e10cf74 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -98,7 +98,8 @@ SUPPORT_ALL := support/TarjanAlgorithm.java \ bench-mc-server bench-max bench-gumyum bench-everything bench-loadsim bench-elytra \ bench-unpatched bench-mitigated bench-enriched bench-three-tier \ play-unpatched play-mitigated play-enriched \ - workbench workbench-build workbench-patched workbench-verify + workbench workbench-build workbench-patched workbench-verify \ + scan-verify coverage-check all: unit integration functional @@ -1287,6 +1288,32 @@ functional/AllMoadsFunctionalTest.class: support/Moad0005Algorithm.java \ support/Moad0009Algorithm.java support/Moad0011Algorithm.java \ functional/AllMoadsFunctionalTest.java +# ── Scan Verify ─────────────────────────────────────────────────────────────── +# Structural verification of all UNDF registry entries against their patch files. +# Reads UNDF-REGISTRY.json, checks each entry's patch for UNDF header comment, +# defective pattern in removed lines, and fix signature in added lines. +# +# make scan-verify — run against all 1258+ entries, fail on FAIL/NO_PATCH +# make scan-verify-report — same + write tests/SCAN-VERIFY-REPORT.md +# make scan-verify-strict — also fail on WARN (headers/sigs need review) +# make coverage-check — CI gate: fail if new registry entries lack patches + +scan-verify: + @echo "=== SCAN VERIFY: structural patch verification for all UNDF entries ===" + python3 scan_verify.py --verbose + +scan-verify-report: + @echo "=== SCAN VERIFY (with report): all UNDF entries ===" + python3 scan_verify.py --verbose --report + +scan-verify-strict: + @echo "=== SCAN VERIFY (strict): fail on WARN + FAIL ===" + python3 scan_verify.py --verbose --fail-on-warn + +coverage-check: + @echo "=== COVERAGE CHECK: CI gate for new UNDF entries ===" + python3 check_coverage.py + # ── Clean ───────────────────────────────────────────────────────────────────── clean: diff --git a/tests/SCAN-VERIFY-REPORT.md b/tests/SCAN-VERIFY-REPORT.md new file mode 100644 index 000000000..d345ecc81 --- /dev/null +++ b/tests/SCAN-VERIFY-REPORT.md @@ -0,0 +1,1694 @@ +# SCAN-VERIFY-REPORT + +**1258 UNDF entries** in registry. **895** verified (74.2% of clonable). **51** pending source clone. + +| Status | Count | Meaning | +|--------|-------|---------| +| PASS | 454 | Patch present, fix signature confirmed | +| WARN | 441 | Patch present, header or signature needs review | +| FAIL | 12 | Patch malformed or missing diff lines | +| NO_PATCH | 300 | Directory exists, no patch/ file found | +| PENDING | 51 | Source not cloned, directory missing | + +## FAIL entries + +- **UNDF-2026-000001081** `dnsmasq-0001-0001` (`defects/dnsmasq-0001/`) + - [dnsmasq-0001-option-filter-dedup-bitmap.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000001088** `esp-idf-0001-0001` (`defects/esp-idf-0001/`) + - [esp-idf-0001.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000001089** `esp-idf-0002-0002` (`defects/esp-idf-0002/`) + - [esp-idf-0002.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000001166** `systemd-0003` (`defects/systemd/`) + - [systemd-0003-dbus-cgroup-bpf-filter-strv-dedup.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000887** `thunderbird-0001-0001` (`defects/thunderbird-0001/`) + - [thunderbird-0001_nsMsgAccountManager_LoadAccounts_indexOf_ON2.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000888** `thunderbird-0002-0002` (`defects/thunderbird-0002/`) + - [thunderbird-0002_nsMsgCopyService_DoNextCopy_ContainsObject_ON2.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000889** `thunderbird-0003-0003` (`defects/thunderbird-0003/`) + - [thunderbird-0003_nsAutoSyncManager_IndexOf_ON2.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000890** `thunderbird-0004-0004` (`defects/thunderbird-0004/`) + - [thunderbird-0004_nsImapFlagAndUidState_Contains_linear_on_sorted.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000891** `thunderbird-0005-0005` (`defects/thunderbird-0005/`) + - [thunderbird-0005_nsMsgFilterList_ComputeArbitraryHeaders_ON2.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000892** `thunderbird-0006-0006` (`defects/thunderbird-0006/`) + - [thunderbird-0006_nsSpamSettings_CheckWhiteList_ON2.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000000328** `valkey-0003` (`defects/valkey/`) + - [0003-acl-selector-patterns-dict.patch] No added lines (+) found in patch — empty or malformed diff +- **UNDF-2026-000001174** `vlc-0003-0003` (`defects/vlc-0003/`) + - [vlc-0003.patch] No added lines (+) found in patch — empty or malformed diff + +## NO_PATCH entries + +- **UNDF-2026-000000353** `activemq-artemis-0001` (`defects/activemq-artemis/`) + - defects/activemq-artemis/patch/ not found or empty +- **UNDF-2026-000000602** `activemq-artemis-0002` (`defects/activemq-artemis/`) + - defects/activemq-artemis/patch/ not found or empty +- **UNDF-2026-000000344** `actix-0003` (`defects/actix/`) + - defects/actix/patch/ not found or empty +- **UNDF-2026-000000345** `actix-web-0001` (`defects/actix-web/`) + - defects/actix-web/patch/ not found or empty +- **UNDF-2026-000000346** `actix-web-0002` (`defects/actix-web/`) + - defects/actix-web/patch/ not found or empty +- **UNDF-2026-000000618** `actix-web-0003` (`defects/actix-web/`) + - defects/actix-web/patch/ not found or empty +- **UNDF-2026-000000347** `airflow-0001` (`defects/airflow/`) + - defects/airflow/patch/ not found or empty +- **UNDF-2026-000000349** `argo-workflows-0001` (`defects/argo-workflows/`) + - defects/argo-workflows/patch/ not found or empty +- **UNDF-2026-000000350** `artemis-0001` (`defects/artemis/`) + - defects/artemis/patch/ not found or empty +- **UNDF-2026-000000622** `artemis-0002` (`defects/artemis/`) + - defects/artemis/patch/ not found or empty +- **UNDF-2026-000000351** `asterisk-0003` (`defects/asterisk/`) + - defects/asterisk/patch/ not found or empty +- **UNDF-2026-000001060** `audacity-2026` (`defects/audacity/`) + - defects/audacity/patch/ not found or empty +- **UNDF-2026-000000581** `bazel-0003` (`defects/bazel/`) + - defects/bazel/patch/ not found or empty +- **UNDF-2026-000000354** `binutils-0001` (`defects/binutils/`) + - defects/binutils/patch/ not found or empty +- **UNDF-2026-000000355** `bird-0003` (`defects/bird/`) + - defects/bird/patch/ not found or empty +- **UNDF-2026-000000356** `bird-0004` (`defects/bird/`) + - defects/bird/patch/ not found or empty +- **UNDF-2026-000000357** `bitcoin-0001` (`defects/bitcoin/`) + - defects/bitcoin/patch/ not found or empty +- **UNDF-2026-000000824** `bleach-0001` (`defects/bleach/`) + - defects/bleach/patch/ not found or empty +- **UNDF-2026-000000604** `bullet3-0002` (`defects/bullet3/`) + - defects/bullet3/patch/ not found or empty +- **UNDF-2026-000000532** `caddy-0002` (`defects/caddy/`) + - defects/caddy/patch/ not found or empty +- **UNDF-2026-000000158** `camel-0001` (`defects/camel/`) + - defects/camel/patch/ not found or empty +- **UNDF-2026-000000361** `celery-0002` (`defects/celery/`) + - defects/celery/patch/ not found or empty +- **UNDF-2026-000000694** `ceph-0002` (`defects/ceph/`) + - defects/ceph/patch/ not found or empty +- **UNDF-2026-000000362** `chef-0001` (`defects/chef/`) + - defects/chef/patch/ not found or empty +- **UNDF-2026-000000363** `cilium-0002` (`defects/cilium/`) + - defects/cilium/patch/ not found or empty +- **UNDF-2026-000000364** `cilium-0003` (`defects/cilium/`) + - defects/cilium/patch/ not found or empty +- **UNDF-2026-000000365** `cilium-0004` (`defects/cilium/`) + - defects/cilium/patch/ not found or empty +- **UNDF-2026-000000681** `clickhouse-0002` (`defects/clickhouse/`) + - defects/clickhouse/patch/ not found or empty +- **UNDF-2026-000000682** `cockroachdb-0002` (`defects/cockroachdb/`) + - defects/cockroachdb/patch/ not found or empty +- **UNDF-2026-000000605** `composer-0003` (`defects/composer/`) + - defects/composer/patch/ not found or empty +- **UNDF-2026-000000368** `containerd-0001` (`defects/containerd/`) + - defects/containerd/patch/ not found or empty +- **UNDF-2026-000000674** `cpython-0003` (`defects/cpython/`) + - defects/cpython/patch/ not found or empty +- **UNDF-2026-000000675** `cpython-0004` (`defects/cpython/`) + - defects/cpython/patch/ not found or empty +- **UNDF-2026-000000371** `crystal-0003` (`defects/crystal/`) + - defects/crystal/patch/ not found or empty +- **UNDF-2026-000000372** `crystal-0004` (`defects/crystal/`) + - defects/crystal/patch/ not found or empty +- **UNDF-2026-000000582** `curl-0002` (`defects/curl/`) + - defects/curl/patch/ not found or empty +- **UNDF-2026-000000583** `curl-0003` (`defects/curl/`) + - defects/curl/patch/ not found or empty +- **UNDF-2026-000000695** `curl-0004` (`defects/curl/`) + - defects/curl/patch/ not found or empty +- **UNDF-2026-000000237** `cxf-0001` (`defects/cxf/`) + - defects/cxf/patch/ not found or empty +- **UNDF-2026-000000580** `dagger-0001` (`defects/dagger/`) + - defects/dagger/patch/ not found or empty +- **UNDF-2026-000000373** `dart-0001` (`defects/dart/`) + - defects/dart/patch/ not found or empty +- **UNDF-2026-000000374** `dart-0002` (`defects/dart/`) + - defects/dart/patch/ not found or empty +- **UNDF-2026-000000375** `dart-0003` (`defects/dart/`) + - defects/dart/patch/ not found or empty +- **UNDF-2026-000001224** `dbus-0001` (`defects/dbus/`) + - defects/dbus/patch/ not found or empty +- **UNDF-2026-000000377** `dgraph-0001` (`defects/dgraph/`) + - defects/dgraph/patch/ not found or empty +- **UNDF-2026-000000378** `django-0005` (`defects/django/`) + - defects/django/patch/ not found or empty +- **UNDF-2026-000000379** `django-0006` (`defects/django/`) + - defects/django/patch/ not found or empty +- **UNDF-2026-000000081** `django-0007` (`defects/django/`) + - defects/django/patch/ not found or empty +- **UNDF-2026-000000380** `doctrine-orm` (`defects/doctrine/`) + - defects/doctrine/patch/ not found or empty +- **UNDF-2026-000000606** `doctrine-orm-0001` (`defects/doctrine-orm/`) + - defects/doctrine-orm/patch/ not found or empty +- **UNDF-2026-000000381** `doris-0001` (`defects/doris/`) + - defects/doris/patch/ not found or empty +- **UNDF-2026-000000607** `doris-0002` (`defects/doris/`) + - defects/doris/patch/ not found or empty +- **UNDF-2026-000000001** `doris-0003` (`defects/doris/`) + - defects/doris/patch/ not found or empty +- **UNDF-2026-000000696** `doris-0004` (`defects/doris/`) + - defects/doris/patch/ not found or empty +- **UNDF-2026-000000383** `druid-0001` (`defects/druid/`) + - defects/druid/patch/ not found or empty +- **UNDF-2026-000000238** `dubbo-0001` (`defects/dubbo/`) + - defects/dubbo/patch/ not found or empty +- **UNDF-2026-000000697** `dubbo-0002` (`defects/dubbo/`) + - defects/dubbo/patch/ not found or empty +- **UNDF-2026-000000384** `eclipse-jdt-0001` (`defects/eclipse-jdt/`) + - defects/eclipse-jdt/patch/ not found or empty +- **UNDF-2026-000000598** `eclipse-jdt-0002` (`defects/eclipse-jdt/`) + - defects/eclipse-jdt/patch/ not found or empty +- **UNDF-2026-000000385** `elasticsearch-0001` (`defects/elasticsearch/`) + - defects/elasticsearch/patch/ not found or empty +- **UNDF-2026-000000627** `elasticsearch-001` (`defects/elasticsearch/`) + - defects/elasticsearch/patch/ not found or empty +- **UNDF-2026-000000628** `elasticsearch-002` (`defects/elasticsearch/`) + - defects/elasticsearch/patch/ not found or empty +- **UNDF-2026-000000629** `elasticsearch-003` (`defects/elasticsearch/`) + - defects/elasticsearch/patch/ not found or empty +- **UNDF-2026-000000630** `elasticsearch-004` (`defects/elasticsearch/`) + - defects/elasticsearch/patch/ not found or empty +- **UNDF-2026-000000631** `elixir-0001` (`defects/elixir/`) + - defects/elixir/patch/ not found or empty +- **UNDF-2026-000000698** `elixir-0002` (`defects/elixir/`) + - defects/elixir/patch/ not found or empty +- **UNDF-2026-000000388** `emacs-0001` (`defects/emacs/`) + - defects/emacs/patch/ not found or empty +- **UNDF-2026-000000389** `emacs-0002` (`defects/emacs/`) + - defects/emacs/patch/ not found or empty +- **UNDF-2026-000000390** `envoy-0002` (`defects/envoy/`) + - defects/envoy/patch/ not found or empty +- **UNDF-2026-000000391** `envoy-0003` (`defects/envoy/`) + - defects/envoy/patch/ not found or empty +- **UNDF-2026-000000528** `erlang-0004` (`defects/erlang/`) + - defects/erlang/patch/ not found or empty +- **UNDF-2026-000000395** `flink-0002` (`defects/flink/`) + - defects/flink/patch/ not found or empty +- **UNDF-2026-000000396** `flink-0003` (`defects/flink/`) + - defects/flink/patch/ not found or empty +- **UNDF-2026-000000397** `flink-0004` (`defects/flink/`) + - defects/flink/patch/ not found or empty +- **UNDF-2026-000000398** `flink-0005` (`defects/flink/`) + - defects/flink/patch/ not found or empty +- **UNDF-2026-000000400** `foundationdb-0001` (`defects/foundationdb/`) + - defects/foundationdb/patch/ not found or empty +- **UNDF-2026-000000401** `frrouting-0003` (`defects/frrouting/`) + - defects/frrouting/patch/ not found or empty +- **UNDF-2026-000000402** `frrouting-0004` (`defects/frrouting/`) + - defects/frrouting/patch/ not found or empty +- **UNDF-2026-000000078** `ghc-0001` (`defects/ghc/`) + - defects/ghc/patch/ not found or empty +- **UNDF-2026-000000826** `go-0002` (`defects/go/`) + - defects/go/patch/ not found or empty +- **UNDF-2026-000000599** `graal-0001` (`defects/graal/`) + - defects/graal/patch/ not found or empty +- **UNDF-2026-000000600** `graal-0002` (`defects/graal/`) + - defects/graal/patch/ not found or empty +- **UNDF-2026-000000407** `graphhopper-0001` (`defects/graphhopper/`) + - defects/graphhopper/patch/ not found or empty +- **UNDF-2026-000000408** `graphhopper-0002` (`defects/graphhopper/`) + - defects/graphhopper/patch/ not found or empty +- **UNDF-2026-000000409** `groovy-0001` (`defects/groovy/`) + - defects/groovy/patch/ not found or empty +- **UNDF-2026-000000410** `groovy-0002` (`defects/groovy/`) + - defects/groovy/patch/ not found or empty +- **UNDF-2026-000000411** `grpc-0001` (`defects/grpc/`) + - defects/grpc/patch/ not found or empty +- **UNDF-2026-000000413** `haproxy-0002` (`defects/haproxy/`) + - defects/haproxy/patch/ not found or empty +- **UNDF-2026-000000414** `haproxy-0003` (`defects/haproxy/`) + - defects/haproxy/patch/ not found or empty +- **UNDF-2026-000000702** `haproxy-0004` (`defects/haproxy/`) + - defects/haproxy/patch/ not found or empty +- **UNDF-2026-000000415** `hazelcast-0001` (`defects/hazelcast/`) + - defects/hazelcast/patch/ not found or empty +- **UNDF-2026-000000416** `hazelcast-0002` (`defects/hazelcast/`) + - defects/hazelcast/patch/ not found or empty +- **UNDF-2026-000000601** `hazelcast-0003` (`defects/hazelcast/`) + - defects/hazelcast/patch/ not found or empty +- **UNDF-2026-000000417** `hibernate-0006` (`defects/hibernate/`) + - defects/hibernate/patch/ not found or empty +- **UNDF-2026-000000827** `hibernate-orm-0001` (`defects/hibernate-orm/`) + - defects/hibernate-orm/patch/ not found or empty +- **UNDF-2026-000000474** `hibernate-validator-0001` (`defects/hibernate-validator/`) + - defects/hibernate-validator/patch/ not found or empty +- **UNDF-2026-000000520** `hibernate-validator-0002` (`defects/hibernate-validator/`) + - defects/hibernate-validator/patch/ not found or empty +- **UNDF-2026-000000267** `hibernate-validator-0003` (`defects/hibernate-validator/`) + - defects/hibernate-validator/patch/ not found or empty +- **UNDF-2026-000000792** `hive-0003` (`defects/hive/`) + - defects/hive/patch/ not found or empty +- **UNDF-2026-000000418** `httpd-0002` (`defects/httpd/`) + - defects/httpd/patch/ not found or empty +- **UNDF-2026-000000419** `httpd-0003` (`defects/httpd/`) + - defects/httpd/patch/ not found or empty +- **UNDF-2026-000000420** `httpd-0004` (`defects/httpd/`) + - defects/httpd/patch/ not found or empty +- **UNDF-2026-000000421** `hudi-0001` (`defects/hudi/`) + - defects/hudi/patch/ not found or empty +- **UNDF-2026-000000422** `hudi-0002` (`defects/hudi/`) + - defects/hudi/patch/ not found or empty +- **UNDF-2026-000000423** `hudi-0003` (`defects/hudi/`) + - defects/hudi/patch/ not found or empty +- **UNDF-2026-000001247** `hurd-0004` (`defects/hurd/`) + - defects/hurd/patch/ not found or empty +- **UNDF-2026-000000425** `iceberg-0001` (`defects/iceberg/`) + - defects/iceberg/patch/ not found or empty +- **UNDF-2026-000000427** `istio-0002` (`defects/istio/`) + - defects/istio/patch/ not found or empty +- **UNDF-2026-000000428** `istio-0003` (`defects/istio/`) + - defects/istio/patch/ not found or empty +- **UNDF-2026-000000596** `jackson-0001` (`defects/jackson/`) + - defects/jackson/patch/ not found or empty +- **UNDF-2026-000000597** `jackson-0002` (`defects/jackson/`) + - defects/jackson/patch/ not found or empty +- **UNDF-2026-000000430** `janusgraph-0001` (`defects/janusgraph/`) + - defects/janusgraph/patch/ not found or empty +- **UNDF-2026-000000431** `jax-0001` (`defects/jax/`) + - defects/jax/patch/ not found or empty +- **UNDF-2026-000000433** `jsc-0001` (`defects/jsc/`) + - defects/jsc/patch/ not found or empty +- **UNDF-2026-000000434** `jsc-0002` (`defects/jsc/`) + - defects/jsc/patch/ not found or empty +- **UNDF-2026-000000588** `jsc-0003` (`defects/jsc/`) + - defects/jsc/patch/ not found or empty +- **UNDF-2026-000000352** `julia-0002` (`defects/julia/`) + - defects/julia/patch/ not found or empty +- **UNDF-2026-000001110** `julia-0003` (`defects/julia/`) + - defects/julia/patch/ not found or empty +- **UNDF-2026-000000435** `kafka-0004` (`defects/kafka/`) + - defects/kafka/patch/ not found or empty +- **UNDF-2026-000000436** `kafka-0005` (`defects/kafka/`) + - defects/kafka/patch/ not found or empty +- **UNDF-2026-000000437** `kafka-0006` (`defects/kafka/`) + - defects/kafka/patch/ not found or empty +- **UNDF-2026-000000438** `kafka-0007` (`defects/kafka/`) + - defects/kafka/patch/ not found or empty +- **UNDF-2026-000000439** `kafka-0008` (`defects/kafka/`) + - defects/kafka/patch/ not found or empty +- **UNDF-2026-000001112** `kdenlive-2026` (`defects/kdenlive/`) + - defects/kdenlive/patch/ not found or empty +- **UNDF-2026-000000589** `kicad-0002` (`defects/kicad/`) + - defects/kicad/patch/ not found or empty +- **UNDF-2026-000000442** `kubeflow-0001` (`defects/kubeflow/`) + - defects/kubeflow/patch/ not found or empty +- **UNDF-2026-000000443** `kubernetes-0004` (`defects/kubernetes/`) + - defects/kubernetes/patch/ not found or empty +- **UNDF-2026-000000444** `kubernetes-0005` (`defects/kubernetes/`) + - defects/kubernetes/patch/ not found or empty +- **UNDF-2026-000000445** `kubernetes-0006` (`defects/kubernetes/`) + - defects/kubernetes/patch/ not found or empty +- **UNDF-2026-000000446** `kubernetes-0007` (`defects/kubernetes/`) + - defects/kubernetes/patch/ not found or empty +- **UNDF-2026-000000447** `kylin-0001` (`defects/kylin/`) + - defects/kylin/patch/ not found or empty +- **UNDF-2026-000000608** `kylin-0002` (`defects/kylin/`) + - defects/kylin/patch/ not found or empty +- **UNDF-2026-000000448** `leveldb-0001` (`defects/leveldb/`) + - defects/leveldb/patch/ not found or empty +- **UNDF-2026-000000637** `leveldb-001` (`defects/leveldb/`) + - defects/leveldb/patch/ not found or empty +- **UNDF-2026-000000590** `libevent-0001` (`defects/libevent/`) + - defects/libevent/patch/ not found or empty +- **UNDF-2026-000000450** `libgdx-0003` (`defects/libgdx/`) + - defects/libgdx/patch/ not found or empty +- **UNDF-2026-000000591** `libvirt-0001` (`defects/libvirt/`) + - defects/libvirt/patch/ not found or empty +- **UNDF-2026-000000592** `libvirt-0002` (`defects/libvirt/`) + - defects/libvirt/patch/ not found or empty +- **UNDF-2026-000000452** `linkerd2-0002` (`defects/linkerd2/`) + - defects/linkerd2/patch/ not found or empty +- **UNDF-2026-000000578** `liquibase-0001` (`defects/liquibase/`) + - defects/liquibase/patch/ not found or empty +- **UNDF-2026-000000453** `lldb-0001` (`defects/lldb/`) + - defects/lldb/patch/ not found or empty +- **UNDF-2026-000000454** `lmdb-0001` (`defects/lmdb/`) + - defects/lmdb/patch/ not found or empty +- **UNDF-2026-000000638** `lmdb-001` (`defects/lmdb/`) + - defects/lmdb/patch/ not found or empty +- **UNDF-2026-000000455** `love2d-0002` (`defects/love2d/`) + - defects/love2d/patch/ not found or empty +- **UNDF-2026-000000456** `love2d-0003` (`defects/love2d/`) + - defects/love2d/patch/ not found or empty +- **UNDF-2026-000000457** `make-0001` (`defects/make/`) + - defects/make/patch/ not found or empty +- **UNDF-2026-000000609** `mastodon-0001` (`defects/mastodon/`) + - defects/mastodon/patch/ not found or empty +- **UNDF-2026-000000610** `mastodon-0002` (`defects/mastodon/`) + - defects/mastodon/patch/ not found or empty +- **UNDF-2026-000000458** `mbedtls-0001` (`defects/mbedtls/`) + - defects/mbedtls/patch/ not found or empty +- **UNDF-2026-000000459** `mbedtls-0002` (`defects/mbedtls/`) + - defects/mbedtls/patch/ not found or empty +- **UNDF-2026-000000460** `metaflow-0001` (`defects/metaflow/`) + - defects/metaflow/patch/ not found or empty +- **UNDF-2026-000000461** `micronaut-0001` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000462** `micronaut-0002` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000463** `micronaut-0003` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000484** `micronaut-0004` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000676** `micronaut-0005` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000677** `micronaut-0006` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000268** `micronaut-0007` (`defects/micronaut/`) + - defects/micronaut/patch/ not found or empty +- **UNDF-2026-000000688** `moby-0002` (`defects/moby/`) + - defects/moby/patch/ not found or empty +- **UNDF-2026-000000465** `mongodb-0008` (`defects/mongodb/`) + - defects/mongodb/patch/ not found or empty +- **UNDF-2026-000000467** `neo4j-0001` (`defects/neo4j/`) + - defects/neo4j/patch/ not found or empty +- **UNDF-2026-000000573** `nestjs-0003` (`defects/nestjs/`) + - defects/nestjs/patch/ not found or empty +- **UNDF-2026-000000470** `nginx-0002` (`defects/nginx/`) + - defects/nginx/patch/ not found or empty +- **UNDF-2026-000000471** `nginx-0003` (`defects/nginx/`) + - defects/nginx/patch/ not found or empty +- **UNDF-2026-000000707** `nginx-0004` (`defects/nginx/`) + - defects/nginx/patch/ not found or empty +- **UNDF-2026-000000472** `nifi-0001` (`defects/nifi/`) + - defects/nifi/patch/ not found or empty +- **UNDF-2026-000000639** `nim-0001` (`defects/nim/`) + - defects/nim/patch/ not found or empty +- **UNDF-2026-000000640** `nim-0002` (`defects/nim/`) + - defects/nim/patch/ not found or empty +- **UNDF-2026-000000708** `nmap-0002` (`defects/nmap/`) + - defects/nmap/patch/ not found or empty +- **UNDF-2026-000000475** `nodejs-0001` (`defects/nodejs/`) + - defects/nodejs/patch/ not found or empty +- **UNDF-2026-000000476** `nomad-0001` (`defects/nomad/`) + - defects/nomad/patch/ not found or empty +- **UNDF-2026-000000477** `nomad-0002` (`defects/nomad/`) + - defects/nomad/patch/ not found or empty +- **UNDF-2026-000000478** `nomad-0003` (`defects/nomad/`) + - defects/nomad/patch/ not found or empty +- **UNDF-2026-000000479** `nomad-0004` (`defects/nomad/`) + - defects/nomad/patch/ not found or empty +- **UNDF-2026-000000480** `numpy-0001` (`defects/numpy/`) + - defects/numpy/patch/ not found or empty +- **UNDF-2026-000000689** `numpy-0002` (`defects/numpy/`) + - defects/numpy/patch/ not found or empty +- **UNDF-2026-000000690** `numpy-0003` (`defects/numpy/`) + - defects/numpy/patch/ not found or empty +- **UNDF-2026-000000481** `octave-0002` (`defects/octave/`) + - defects/octave/patch/ not found or empty +- **UNDF-2026-000000595** `onos-0004` (`defects/onos/`) + - defects/onos/patch/ not found or empty +- **UNDF-2026-000000482** `open3d-0001` (`defects/open3d/`) + - defects/open3d/patch/ not found or empty +- **UNDF-2026-000000483** `open3d-0002` (`defects/open3d/`) + - defects/open3d/patch/ not found or empty +- **UNDF-2026-000000486** `opencv-0002` (`defects/opencv/`) + - defects/opencv/patch/ not found or empty +- **UNDF-2026-000000487** `opensearch-0001` (`defects/opensearch/`) + - defects/opensearch/patch/ not found or empty +- **UNDF-2026-000000643** `opensearch-001` (`defects/opensearch/`) + - defects/opensearch/patch/ not found or empty +- **UNDF-2026-000000644** `opensearch-002` (`defects/opensearch/`) + - defects/opensearch/patch/ not found or empty +- **UNDF-2026-000000645** `opensearch-003` (`defects/opensearch/`) + - defects/opensearch/patch/ not found or empty +- **UNDF-2026-000000646** `opensearch-004` (`defects/opensearch/`) + - defects/opensearch/patch/ not found or empty +- **UNDF-2026-000000647** `opensearch-005` (`defects/opensearch/`) + - defects/opensearch/patch/ not found or empty +- **UNDF-2026-000000488** `openssh-0001` (`defects/openssh/`) + - defects/openssh/patch/ not found or empty +- **UNDF-2026-000000489** `openssh-0002` (`defects/openssh/`) + - defects/openssh/patch/ not found or empty +- **UNDF-2026-000000490** `openssl-0003` (`defects/openssl/`) + - defects/openssl/patch/ not found or empty +- **UNDF-2026-000000491** `openssl-0004` (`defects/openssl/`) + - defects/openssl/patch/ not found or empty +- **UNDF-2026-000000492** `opentofu-0001` (`defects/opentofu/`) + - defects/opentofu/patch/ not found or empty +- **UNDF-2026-000000493** `opentofu-0002` (`defects/opentofu/`) + - defects/opentofu/patch/ not found or empty +- **UNDF-2026-000000494** `optuna-0001` (`defects/optuna/`) + - defects/optuna/patch/ not found or empty +- **UNDF-2026-000000497** `pandas-0001` (`defects/pandas/`) + - defects/pandas/patch/ not found or empty +- **UNDF-2026-000000691** `pandas-0002` (`defects/pandas/`) + - defects/pandas/patch/ not found or empty +- **UNDF-2026-000000498** `php-0003` (`defects/php/`) + - defects/php/patch/ not found or empty +- **UNDF-2026-000000499** `php-0004` (`defects/php/`) + - defects/php/patch/ not found or empty +- **UNDF-2026-000001142** `pidgin-0002-0002` (`defects/pidgin-0002/`) + - defects/pidgin-0002/patch/ not found or empty +- **UNDF-2026-000000500** `pinot-0001` (`defects/pinot/`) + - defects/pinot/patch/ not found or empty +- **UNDF-2026-000000710** `pinot-0002` (`defects/pinot/`) + - defects/pinot/patch/ not found or empty +- **UNDF-2026-000000501** `podman-0001` (`defects/podman/`) + - defects/podman/patch/ not found or empty +- **UNDF-2026-000000502** `podman-0002` (`defects/podman/`) + - defects/podman/patch/ not found or empty +- **UNDF-2026-000000575** `poetry-0001` (`defects/poetry/`) + - defects/poetry/patch/ not found or empty +- **UNDF-2026-000000503** `prometheus-0002` (`defects/prometheus/`) + - defects/prometheus/patch/ not found or empty +- **UNDF-2026-000000508** `pulsar-0004` (`defects/pulsar/`) + - defects/pulsar/patch/ not found or empty +- **UNDF-2026-000000509** `pulsar-0005` (`defects/pulsar/`) + - defects/pulsar/patch/ not found or empty +- **UNDF-2026-000000611** `pulsar-0006` (`defects/pulsar/`) + - defects/pulsar/patch/ not found or empty +- **UNDF-2026-000000510** `pulumi-0001` (`defects/pulumi/`) + - defects/pulumi/patch/ not found or empty +- **UNDF-2026-000000511** `python-igraph-0001` (`defects/python-igraph/`) + - defects/python-igraph/patch/ not found or empty +- **UNDF-2026-000000512** `pytorch-0001` (`defects/pytorch/`) + - defects/pytorch/patch/ not found or empty +- **UNDF-2026-000000513** `pytorch-0002` (`defects/pytorch/`) + - defects/pytorch/patch/ not found or empty +- **UNDF-2026-000000514** `pytorch-0003` (`defects/pytorch/`) + - defects/pytorch/patch/ not found or empty +- **UNDF-2026-000000515** `pytorch-geometric-0001` (`defects/pytorch-geometric/`) + - defects/pytorch-geometric/patch/ not found or empty +- **UNDF-2026-000000516** `qemu-0001` (`defects/qemu/`) + - defects/qemu/patch/ not found or empty +- **UNDF-2026-000000527** `quarkus-0005` (`defects/quarkus/`) + - defects/quarkus/patch/ not found or empty +- **UNDF-2026-000000711** `r-source-0002` (`defects/r-source/`) + - defects/r-source/patch/ not found or empty +- **UNDF-2026-000000473** `rabbitmq-0005` (`defects/rabbitmq/`) + - defects/rabbitmq/patch/ not found or empty +- **UNDF-2026-000000521** `rails-0006` (`defects/rails/`) + - defects/rails/patch/ not found or empty +- **UNDF-2026-000000679** `rails-0019` (`defects/rails/`) + - defects/rails/patch/ not found or empty +- **UNDF-2026-000000522** `raylib-0002` (`defects/raylib/`) + - defects/raylib/patch/ not found or empty +- **UNDF-2026-000001023** `rclone-0001-0001` (`defects/rclone-0001/`) + - defects/rclone-0001/patch/ not found or empty +- **UNDF-2026-000001024** `rclone-0002-0001` (`defects/rclone-0002/`) + - defects/rclone-0002/patch/ not found or empty +- **UNDF-2026-000001025** `rclone-0003-0001` (`defects/rclone-0003/`) + - defects/rclone-0003/patch/ not found or empty +- **UNDF-2026-000001026** `rclone-0004-0001` (`defects/rclone-0004/`) + - defects/rclone-0004/patch/ not found or empty +- **UNDF-2026-000001027** `rclone-0005-0001` (`defects/rclone-0005/`) + - defects/rclone-0005/patch/ not found or empty +- **UNDF-2026-000000523** `redis-0004` (`defects/redis/`) + - defects/redis/patch/ not found or empty +- **UNDF-2026-000001243** `redot-cwe407` (`defects/redot/`) + - defects/redot/patch/ not found or empty +- **UNDF-2026-000000524** `rocksdb-0001` (`defects/rocksdb/`) + - defects/rocksdb/patch/ not found or empty +- **UNDF-2026-000000655** `rocksdb-001` (`defects/rocksdb/`) + - defects/rocksdb/patch/ not found or empty +- **UNDF-2026-000001153** `root-cern-0002-0002` (`defects/root-cern-0002/`) + - defects/root-cern-0002/patch/ not found or empty +- **UNDF-2026-000000525** `ros2-0001` (`defects/ros2/`) + - defects/ros2/patch/ not found or empty +- **UNDF-2026-000000526** `ros2-0002` (`defects/ros2/`) + - defects/ros2/patch/ not found or empty +- **UNDF-2026-000000712** `ruby-0003` (`defects/ruby/`) + - defects/ruby/patch/ not found or empty +- **UNDF-2026-000000773** `rustc-0004` (`defects/rustc/`) + - defects/rustc/patch/ not found or empty +- **UNDF-2026-000000714** `scipy-0001` (`defects/scipy/`) + - defects/scipy/patch/ not found or empty +- **UNDF-2026-000000693** `scylladb-0002` (`defects/scylladb/`) + - defects/scylladb/patch/ not found or empty +- **UNDF-2026-000000612** `sea-orm-0001` (`defects/sea-orm/`) + - defects/sea-orm/patch/ not found or empty +- **UNDF-2026-000000715** `sklearn-0001` (`defects/sklearn/`) + - defects/sklearn/patch/ not found or empty +- **UNDF-2026-000000613** `solang-0001` (`defects/solang/`) + - defects/solang/patch/ not found or empty +- **UNDF-2026-000000533** `solr-0001` (`defects/solr/`) + - defects/solr/patch/ not found or empty +- **UNDF-2026-000000665** `solr-001` (`defects/solr/`) + - defects/solr/patch/ not found or empty +- **UNDF-2026-000000666** `solr-002` (`defects/solr/`) + - defects/solr/patch/ not found or empty +- **UNDF-2026-000000667** `solr-003` (`defects/solr/`) + - defects/solr/patch/ not found or empty +- **UNDF-2026-000000534** `spark-0002` (`defects/spark/`) + - defects/spark/patch/ not found or empty +- **UNDF-2026-000000535** `spark-0004` (`defects/spark/`) + - defects/spark/patch/ not found or empty +- **UNDF-2026-000000536** `spidermonkey-0002` (`defects/spidermonkey/`) + - defects/spidermonkey/patch/ not found or empty +- **UNDF-2026-000000537** `spidermonkey-0003` (`defects/spidermonkey/`) + - defects/spidermonkey/patch/ not found or empty +- **UNDF-2026-000000538** `spidermonkey-0004` (`defects/spidermonkey/`) + - defects/spidermonkey/patch/ not found or empty +- **UNDF-2026-000000721** `spidermonkey-0005` (`defects/spidermonkey/`) + - defects/spidermonkey/patch/ not found or empty +- **UNDF-2026-000000540** `spring-0005` (`defects/spring/`) + - defects/spring/patch/ not found or empty +- **UNDF-2026-000000541** `spring-0006` (`defects/spring/`) + - defects/spring/patch/ not found or empty +- **UNDF-2026-000000562** `spring-0007` (`defects/spring/`) + - defects/spring/patch/ not found or empty +- **UNDF-2026-000000542** `sqlalchemy-0003` (`defects/sqlalchemy/`) + - defects/sqlalchemy/patch/ not found or empty +- **UNDF-2026-000000543** `starrocks-0001` (`defects/starrocks/`) + - defects/starrocks/patch/ not found or empty +- **UNDF-2026-000000495** `starrocks-0002` (`defects/starrocks/`) + - defects/starrocks/patch/ not found or empty +- **UNDF-2026-000000544** `strongswan-0001` (`defects/strongswan/`) + - defects/strongswan/patch/ not found or empty +- **UNDF-2026-000000504** `substrate-0003` (`defects/substrate/`) + - defects/substrate/patch/ not found or empty +- **UNDF-2026-000000546** `swift-0002` (`defects/swift/`) + - defects/swift/patch/ not found or empty +- **UNDF-2026-000000547** `systemd-0001` (`defects/systemd/`) + - defects/systemd/patch/ not found or empty +- **UNDF-2026-000000548** `systemd-0002` (`defects/systemd/`) + - defects/systemd/patch/ not found or empty +- **UNDF-2026-000001228** `systemd-0004-0001` (`defects/systemd-0004/`) + - defects/systemd-0004/patch/ not found or empty +- **UNDF-2026-000000549** `tcl-0001` (`defects/tcl/`) + - defects/tcl/patch/ not found or empty +- **UNDF-2026-000000551** `tensorflow-0001` (`defects/tensorflow/`) + - defects/tensorflow/patch/ not found or empty +- **UNDF-2026-000000552** `threejs-0006` (`defects/threejs/`) + - defects/threejs/patch/ not found or empty +- **UNDF-2026-000000553** `thrift-0001` (`defects/thrift/`) + - defects/thrift/patch/ not found or empty +- **UNDF-2026-000000555** `tokio-0001` (`defects/tokio/`) + - defects/tokio/patch/ not found or empty +- **UNDF-2026-000000556** `tomcat-0002` (`defects/tomcat/`) + - defects/tomcat/patch/ not found or empty +- **UNDF-2026-000000559** `traefik-0003` (`defects/traefik/`) + - defects/traefik/patch/ not found or empty +- **UNDF-2026-000000616** `traefik-0004` (`defects/traefik/`) + - defects/traefik/patch/ not found or empty +- **UNDF-2026-000000560** `trino-0001` (`defects/trino/`) + - defects/trino/patch/ not found or empty +- **UNDF-2026-000000716** `trino-0002` (`defects/trino/`) + - defects/trino/patch/ not found or empty +- **UNDF-2026-000000424** `typeorm-0004` (`defects/typeorm/`) + - defects/typeorm/patch/ not found or empty +- **UNDF-2026-000000426** `typeorm-0005` (`defects/typeorm/`) + - defects/typeorm/patch/ not found or empty +- **UNDF-2026-000000322** `typescript-0001` (`defects/typescript/`) + - defects/typescript/patch/ not found or empty +- **UNDF-2026-000000440** `typescript-0002` (`defects/typescript/`) + - defects/typescript/patch/ not found or empty +- **UNDF-2026-000000579** `typescript-0004` (`defects/typescript/`) + - defects/typescript/patch/ not found or empty +- **UNDF-2026-000000671** `typescript-0005` (`defects/typescript/`) + - defects/typescript/patch/ not found or empty +- **UNDF-2026-000000561** `undertow-0001` (`defects/undertow/`) + - defects/undertow/patch/ not found or empty +- **UNDF-2026-000000563** `uwsgi-0001` (`defects/uwsgi/`) + - defects/uwsgi/patch/ not found or empty +- **UNDF-2026-000000564** `v8-0002` (`defects/v8/`) + - defects/v8/patch/ not found or empty +- **UNDF-2026-000000565** `v8-0003` (`defects/v8/`) + - defects/v8/patch/ not found or empty +- **UNDF-2026-000000593** `v8-0004` (`defects/v8/`) + - defects/v8/patch/ not found or empty +- **UNDF-2026-000000566** `valhalla-0001` (`defects/valhalla/`) + - defects/valhalla/patch/ not found or empty +- **UNDF-2026-000000567** `varnish-0002` (`defects/varnish/`) + - defects/varnish/patch/ not found or empty +- **UNDF-2026-000000568** `varnish-0003` (`defects/varnish/`) + - defects/varnish/patch/ not found or empty +- **UNDF-2026-000000569** `vault-0001` (`defects/vault/`) + - defects/vault/patch/ not found or empty +- **UNDF-2026-000000615** `vertx-core-0001` (`defects/vertx-core/`) + - defects/vertx-core/patch/ not found or empty +- **UNDF-2026-000000574** `weechat-0002` (`defects/weechat/`) + - defects/weechat/patch/ not found or empty +- **UNDF-2026-000000719** `weechat-0003` (`defects/weechat/`) + - defects/weechat/patch/ not found or empty +- **UNDF-2026-000000530** `weld-0001` (`defects/weld/`) + - defects/weld/patch/ not found or empty +- **UNDF-2026-000000550** `weld-0002` (`defects/weld/`) + - defects/weld/patch/ not found or empty +- **UNDF-2026-000000554** `weld-0003` (`defects/weld/`) + - defects/weld/patch/ not found or empty +- **UNDF-2026-000000680** `weld-0004` (`defects/weld/`) + - defects/weld/patch/ not found or empty +- **UNDF-2026-000000672** `weld-0005` (`defects/weld/`) + - defects/weld/patch/ not found or empty +- **UNDF-2026-000000576** `wolfssl-0001` (`defects/wolfssl/`) + - defects/wolfssl/patch/ not found or empty +- **UNDF-2026-000000594** `xen-0001` (`defects/xen/`) + - defects/xen/patch/ not found or empty +- **UNDF-2026-000000577** `yugabyte-0001` (`defects/yugabyte/`) + - defects/yugabyte/patch/ not found or empty +- **UNDF-2026-000000720** `zeek-0002` (`defects/zeek/`) + - defects/zeek/patch/ not found or empty + +## WARN entries + +- **UNDF-2026-000000959** `0ad-0004-0004` (`defects/0ad-0004/`) + - [0ad-0004.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000002** `allegro5-0001` (`defects/allegro5/`) + - [allegro5-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000005** `ansible-0001` (`defects/ansible/`) + - [ans-0001-role-get-vars-seen-id-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000823** `ansible-0003` (`defects/ansible/`) + - [ansible-0003-handler-notify-host-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001057** `aranym-0001-0001` (`defects/aranym-0001/`) + - [aranym-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000763** `arrow-0001` (`defects/arrow/`) + - [arrow-0001-asof-join-key-col-index-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000007** `asterisk-0001` (`defects/asterisk/`) + - [asterisk-0001-interface-exists-ao2-find.patch] No known defective pattern found in removed lines (may be correct for this project) + - [asterisk-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000008** `asterisk-0002` (`defects/asterisk/`) + - [asterisk-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000917** `bcoin-0001` (`defects/bcoin/`) + - [bcoin-0001-rpc-gettxoutproof-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001062** `bind9-0001-0001` (`defects/bind9-0001/`) + - [bind9-0001-zone-registerinclude-newincludes-O-N2.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000012** `bird-0001` (`defects/bird/`) + - [bird-0001-ospf-spf-cand-heap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000013** `bird-0002` (`defects/bird/`) + - [bird-0002-bgp-community-bsearch.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000929** `btcpayserver-0002-0002` (`defects/btcpayserver-0002/`) + - [btcpayserver-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000017** `bullet-0001` (`defects/bullet/`) + - [bullet-0001-ghostobject-hashset-overlapping.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000018** `bullet-0002` (`defects/bullet/`) + - [bullet-0002-collisionobject-checkcollide-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000019** `bullet-0003` (`defects/bullet/`) + - [bullet-0003-sortedpairscache-use-hashed-cache.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000603** `bullet3-0001` (`defects/bullet3/`) + - [bullet3-0001-ghost-object-overlapping-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000359** `bun-0001` (`defects/bun/`) + - [bun-0001-yarn-version-single-pass.patch] No known defective pattern found in removed lines (may be correct for this project) + - [bun-0001-yarn-version-single-pass.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000020** `caddy-0001` (`defects/caddy/`) + - [caddy-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000923** `cake_wallet-0001-0001` (`defects/cake_wallet-0001/`) + - [cake_wallet-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000926** `cake_wallet-0003-0003` (`defects/cake_wallet-0003/`) + - [cake_wallet-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000927** `cake_wallet-0004-0004` (`defects/cake_wallet-0004/`) + - [cake_wallet-0004.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000843** `calibre-0001` (`defects/calibre/`) + - [calibre-0001-series-index-list-membership.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000844** `calibre-0002` (`defects/calibre/`) + - [calibre-0002-google-metadata-tag-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001196** `calibre-0003` (`defects/calibre/`) + - [calibre-0003-html-depth-first-flat-index.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001064** `calligra-0001-0001` (`defects/calligra-0001/`) + - [calligra-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001065** `caprice32-0001-0001` (`defects/caprice32-0001/`) + - [caprice32-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001066** `caprice32-0002-0002` (`defects/caprice32-0002/`) + - [caprice32-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000021** `cargo-0001` (`defects/cargo/`) + - [cargo-0001-print-stack-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000027** `cfengine-0001` (`defects/cfengine/`) + - [cfe-0001-getindices-stringset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000028** `cfengine-0002` (`defects/cfengine/`) + - [cfe-0002-unique-stringset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000029** `cfengine-0003` (`defects/cfengine/`) + - [cfe-0003-maparray-nodededup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001187** `clamav-0001-0001` (`defects/clamav-0001/`) + - [clamav-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [clamav-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000745** `clickhouse-java-0001` (`defects/clickhouse-java/`) + - [clickhouse-java-0001-load-balancing-faulty-nodes-linked-list.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000035** `cmake-0004` (`defects/cmake/`) + - [cmake-0004-addsource-unordered-set.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000367** `consul-0001` (`defects/consul/`) + - [consul-0001-summarize-services-tag-dedup-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000749** `consul-0002` (`defects/consul/`) + - [consul-0002-summarize-services-tag-dedup-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001071** `contiki-0001-0001` (`defects/contiki-0001/`) + - [contiki-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [contiki-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000039** `cpython-0001` (`defects/cpython/`) + - [0001-pkgutil-extend-path-set-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) + - [cpython-0001-codegen-pattern-stores-list-contains.patch] No known defective pattern found in removed lines (may be correct for this project) + - [cpython-0001-codegen-pattern-stores-list-contains.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000673** `cpython-0002` (`defects/cpython/`) + - [cpython-0002-typeobject-pmerge-tail-contains.patch] No known defective pattern found in removed lines (may be correct for this project) + - [cpython-0002-typeobject-pmerge-tail-contains.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000369** `crystal-0001` (`defects/crystal/`) + - [crystal-0001-parser-type-vars-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000370** `crystal-0002` (`defects/crystal/`) + - [crystal-0002-restrictions-discarded-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001072** `cura-0001-0001` (`defects/cura-0001/`) + - [cura-0001-compatible-machine-model-list-rebuild.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000040** `curl-0001` (`defects/curl/`) + - [curl-0001-awssigv4-header-bubble-sort.patch] No known defective pattern found in removed lines (may be correct for this project) + - [curl-0001-cookie-name-hash-index.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001075** `darktable-0004` (`defects/darktable/`) + - [darktable-0004-pwstorage-credential-logged-verbatim-CWE-312.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001076** `darktable-0005` (`defects/darktable/`) + - [darktable-0005-modulegroups-test-visible-O-M-G-P-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000908** `dask-project-0001` (`defects/dask-project/`) + - [dask-project-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000909** `dask-project-0002` (`defects/dask-project/`) + - [dask-project-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001225** `dbus-0001-0001` (`defects/dbus-0001/`) + - [dbus-0001-policy-optimize-o-n2.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000775** `deluge-0001` (`defects/deluge/`) + - [deluge-0001-filtermanager-list-remove-in-loop.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000776** `deluge-0002` (`defects/deluge/`) + - [deluge-0002-torrentmanager-list-index-pop-in-loop.patch] No known defective pattern found in removed lines (may be correct for this project) + - [deluge-0002-torrentmanager-list-index-pop-in-loop.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000041** `dendrite-0001` (`defects/dendrite/`) + - [dendrite-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000042** `dendrite-0002` (`defects/dendrite/`) + - [dendrite-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000043** `diesel-0001` (`defects/diesel/`) + - [diesel-0001-sqlite-row-column-name-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000044** `diesel-0002` (`defects/diesel/`) + - [diesel-0002-owned-sqlite-row-column-name-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000045** `diesel-0003` (`defects/diesel/`) + - [diesel-0003-mysql-row-column-name-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000851** `digikam-0001` (`defects/digikam/`) + - [digikam-0001-haar-targetalbums-list-contains.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001080** `digikam-0004` (`defects/digikam/`) + - [digikam-0004-o2-oauth-client-secret-logged.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000046** `distlib-0001` (`defects/distlib/`) + - [distlib-0001-get-dependent-dists-dep-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [distlib-0001-stack-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000722** `distlib-0002` (`defects/distlib/`) + - [distlib-0002-get-steps-ordered-dict.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000048** `django-0002` (`defects/django/`) + - [django-0002-serializer-selected-fields-frozenset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001184** `dnsdbq-0001-0001` (`defects/dnsdbq-0001/`) + - [dnsdbq-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000918** `dogecoin-0001-0001` (`defects/dogecoin-0001/`) + - [dogecoin-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [dogecoin-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001082** `dolibarr-0004` (`defects/dolibarr/`) + - [dolibarr-0004-emailcollector-imap-password-logged.patch] No known defective pattern found in removed lines (may be correct for this project) + - [dolibarr-0004-emailcollector-imap-password-logged.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001083** `dolibarr-0005` (`defects/dolibarr/`) + - [dolibarr-0005-ldap-searchpassword-logged.patch] No known defective pattern found in removed lines (may be correct for this project) + - [dolibarr-0005-ldap-searchpassword-logged.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001042** `dolphin-0001-0001` (`defects/dolphin-0001/`) + - [dolphin-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000053** `dovecot-0001` (`defects/dovecot/`) + - [dovecot-0001-mail-hooks-sorted-plugins.patch] No known defective pattern found in removed lines (may be correct for this project) + - [dovecot-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000060** `ejabberd-0001` (`defects/ejabberd/`) + - [ejabberd-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [ejabberd-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000061** `ejabberd-0002` (`defects/ejabberd/`) + - [ejabberd-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [ejabberd-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000919** `electrum-0001-0001` (`defects/electrum-0001/`) + - [electrum-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000924** `electrum-0002-0002` (`defects/electrum-0002/`) + - [electrum-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [electrum-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000699** `envoy-0004` (`defects/envoy/`) + - [envoy-0004-http2-settings-dedup-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000064** `erlang-0001` (`defects/erlang/`) + - [erlang-0001-one-path-sets.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000065** `erlang-0003` (`defects/erlang/`) + - [erlang-0003-merge-path1-sets.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000862** `erpnext-0001-0001` (`defects/erpnext-0001/`) + - [erpnext-0001-bom-get-children-list-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000863** `erpnext-0002-0002` (`defects/erpnext-0002/`) + - [erpnext-0002-serial-batch-list-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000730** `esbuild-0001` (`defects/esbuild/`) + - [esbuild-0001-serve-hosts-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001090** `evolution-0001-0001` (`defects/evolution-0001/`) + - [evolution-0001-exdate-dedup-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001209** `evolution-0002-0002` (`defects/evolution-0002/`) + - [evolution-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000358** `exim-0001` (`defects/exim/`) + - [exim-0001-same-hosts-mx-segment-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000067** `exposed-0002` (`defects/exposed/`) + - [exposed-0002-isAKeyword.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000068** `exposed-0003` (`defects/exposed/`) + - [exposed-0003-Table-clone-consParamNames.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000069** `fastapi-0001` (`defects/fastapi/`) + - [fastapi-0001-get-flat-dependant-visited-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001045** `fbneo-0001-0001` (`defects/fbneo-0001/`) + - [fbneo-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001046** `fceux-0001-0001` (`defects/fceux-0001/`) + - [fceux-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000070** `ffmpeg-0001` (`defects/ffmpeg/`) + - [ffmpeg-0001-filtergraph-format-merge-n2.patch] No known defective pattern found in removed lines (may be correct for this project) + - [ffmpeg-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000684** `ffmpeg-0002` (`defects/ffmpeg/`) + - [ffmpeg-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [ffmpeg-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000700** `ffmpeg-0003` (`defects/ffmpeg/`) + - [ffmpeg-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001091** `ffmpeg-0004` (`defects/ffmpeg/`) + - [ffmpeg-0004-http-auth-debug-log-credential-leak.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000980** `flightgear-0002-0002` (`defects/flightgear-0002/`) + - [flightgear-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000981** `flightgear-0003-0003` (`defects/flightgear-0003/`) + - [flightgear-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000762** `flink-0007` (`defects/flink/`) + - [flink-0007-ml-predict-tablefieldnames-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001092** `forgejo-0002-0002` (`defects/forgejo-0002/`) + - [forgejo-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001093** `forgejo-0003-0003` (`defects/forgejo-0003/`) + - [forgejo-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000847** `freecad-0001-0001` (`defects/freecad-0001/`) + - [freecad-0001-ifc-generator-done-list.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000848** `freecad-0002-0002` (`defects/freecad-0002/`) + - [freecad-0002-importdxf-processededges-list.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000974** `freeciv-0001-0001` (`defects/freeciv-0001/`) + - [freeciv-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000996** `freeorion-0001-0001` (`defects/freeorion-0001/`) + - [freeorion-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000998** `freeorion-0003-0003` (`defects/freeorion-0003/`) + - [freeorion-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000073** `freeswitch-0001` (`defects/freeswitch/`) + - [0001-conference-relationship-precompute-matrix.patch] No known defective pattern found in removed lines (may be correct for this project) + - [freeswitch-0001-get-codecs-sorted-o-n2-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000074** `frrouting-0001` (`defects/frrouting/`) + - [frrouting-0001-pc-path-index.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000075** `frrouting-0002` (`defects/frrouting/`) + - [frrouting-0002-ospf-spf-vertex-parent-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001047** `fs-uae-0001-0001` (`defects/fs-uae-0001/`) + - [fs-uae-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000076** `gcc-0001` (`defects/gcc/`) + - [gcc-0001-gcov-blocked-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001096** `gearboy-0001-0001` (`defects/gearboy-0001/`) + - [gearboy-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001097** `gearsystem-0001-0001` (`defects/gearsystem-0001/`) + - [gearsystem-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001048** `genesis-plus-gx-0001-0001` (`defects/genesis-plus-gx-0001/`) + - [genesis-plus-gx-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000079** `ghc-0003` (`defects/ghc/`) + - [ghc-0003-checknode-uniqset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000794** `gimp-0002` (`defects/gimp/`) + - [gimp-0002-remove-from-layer-stack-quadratic.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000080** `gin-0001` (`defects/gin/`) + - [gin-0001-method-trees-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000853** `gitlab-foss-0001` (`defects/gitlab-foss/`) + - [gitlab-foss-0001-network-graph-find-free-space-array-include.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000854** `gitlab-foss-0002` (`defects/gitlab-foss/`) + - [gitlab-foss-0002-network-graph-overlap-spaces-array-include.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000855** `gitlab-foss-0003` (`defects/gitlab-foss/`) + - [gitlab-foss-0003-notification-service-mentioned-users-array-include.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000856** `gitlab-foss-0004` (`defects/gitlab-foss/`) + - [gitlab-foss-0004-refresh-service-commit-ids-array-include.patch] No known defective pattern found in removed lines (may be correct for this project) + - [gitlab-foss-0004-refresh-service-commit-ids-array-include.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000857** `gitlab-foss-0005` (`defects/gitlab-foss/`) + - [gitlab-foss-0005-project-members-among-user-ids-array-include.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000825** `go-0001` (`defects/go/`) + - [go-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000083** `godot-0001` (`defects/godot/`) + - [godot-0001-scene-tree-group-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000086** `godot-0004` (`defects/godot/`) + - [godot-0004-softbody-node-links-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000585** `godot-0006` (`defects/godot/`) + - [godot-0006-skeleton3d-child-bones-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000586** `godot-0007` (`defects/godot/`) + - [godot-0007-rest-fixer-bones-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000587** `godot-0008` (`defects/godot/`) + - [godot-0008-gltf-extensions-used-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000404** `godot-0009` (`defects/godot/`) + - [godot-0009-font-is-cyclic-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000405** `godot-0010` (`defects/godot/`) + - [godot-0010-font-update-rids-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000814** `grafana-0003` (`defects/grafana/`) + - [grafana-0003-folder-dedup-containsfunc.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000093** `grape-0003` (`defects/grape/`) + - [grape-0003-routing-endpoints-any-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000743** `grpc-java-0002` (`defects/grpc-java/`) + - [grpc-java-0002-xds-client-get-active-authorities-list-contains.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000744** `grpc-java-0003` (`defects/grpc-java/`) + - [grpc-java-0003-okhttp-util-intersect-nested-loop.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000094** `gstreamer-0001` (`defects/gstreamer/`) + - [gstreamer-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001099** `gstreamer-0004` (`defects/gstreamer/`) + - [gstreamer-0004-rtspsrc-proxy-password-cwe312.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000095** `gyp-0001` (`defects/gyp/`) + - [gyp-0001-path-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000100** `hanami-0001` (`defects/hanami/`) + - [hanami-0001-slice-registrar-filter-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [hanami-0001-slice-registrar-filter-set.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000101** `haproxy-0001` (`defects/haproxy/`) + - [haproxy-0001-cookie-srv-ebtree-index.patch] No known defective pattern found in removed lines (may be correct for this project) + - [haproxy-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [haproxy-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001049** `hatari-0001-0001` (`defects/hatari-0001/`) + - [hatari-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000104** `helm-0001` (`defects/helm/`) + - [helm-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000464** `hibernate-0007` (`defects/hibernate/`) + - [hibernate-0007-fk-second-pass-diamond-recursion.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000818** `hive-0002` (`defects/hive/`) + - [hive-0001-0002-genmrproccontext-seenops-hashset.patch] Header UNDF ID UNDF-2026-000000791 != registry UNDF-2026-000000818 +- **UNDF-2026-000000113** `httpd-0001` (`defects/httpd/`) + - [httpd-0001-proxy-balancer-route-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001244** `hurd-0001` (`defects/hurd/`) + - [0001-CWE-407-hurd-0001-hurd-0006-fix-O-N-M-k-auth-verify-.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001245** `hurd-0002` (`defects/hurd/`) + - [0002-CWE-407-hurd-0002-hurd-0003-replace-_ports_notificat.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001246** `hurd-0003` (`defects/hurd/`) + - [0002-CWE-407-hurd-0002-hurd-0003-replace-_ports_notificat.patch] Header UNDF ID UNDF-2026-000001245 != registry UNDF-2026-000001246 + - [0002-CWE-407-hurd-0002-hurd-0003-replace-_ports_notificat.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0003-CWE-407-hurd-0005-per-class-port-list.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0003-CWE-407-hurd-0005-per-class-port-list.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001248** `hurd-0005` (`defects/hurd/`) + - [0003-CWE-407-hurd-0005-per-class-port-list.patch] Header UNDF ID UNDF-2026-000001246 != registry UNDF-2026-000001248 + - [0003-CWE-407-hurd-0005-per-class-port-list.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0003-CWE-407-hurd-0005-per-class-port-list.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001249** `hurd-0006` (`defects/hurd/`) + - [0001-CWE-407-hurd-0001-hurd-0006-fix-O-N-M-k-auth-verify-.patch] Header UNDF ID UNDF-2026-000001244 != registry UNDF-2026-000001249 + - [0001-CWE-407-hurd-0001-hurd-0006-fix-O-N-M-k-auth-verify-.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000781** `imagemagick-0001` (`defects/imagemagick/`) + - [imagemagick-0001-uhdr-getimagelist-length-loop.patch] No known defective pattern found in removed lines (may be correct for this project) + - [imagemagick-0001-uhdr-getimagelist-length-loop.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000782** `imagemagick-0002` (`defects/imagemagick/`) + - [imagemagick-0002-syncimglist-scene-dedup-quadratic.patch] No known defective pattern found in removed lines (may be correct for this project) + - [imagemagick-0002-syncimglist-scene-dedup-quadratic.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001103** `invoiceninja-0002-0002` (`defects/invoiceninja-0002/`) + - [invoiceninja-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [invoiceninja-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001104** `invoiceninja-0003-0003` (`defects/invoiceninja-0003/`) + - [invoiceninja-0003.patch] No removed lines (-) — additive/guard-insertion patch (no replace) + - [invoiceninja-0003.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001199** `invoiceninja-0005-0005` (`defects/invoiceninja-0005/`) + - [invoiceninja-0005.patch] No known defective pattern found in removed lines (may be correct for this project) + - [invoiceninja-0005.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001015** `ipfs-cluster-0001-0001` (`defects/ipfs-cluster-0001/`) + - [ipfs-cluster-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001016** `iroh-0001-0001` (`defects/iroh-0001/`) + - [iroh-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001105** `irssi-0001-0001` (`defects/irssi-0001/`) + - [irssi-0001-rawlog-redact.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000116** `jami-daemon-0002` (`defects/jami-daemon/`) + - [0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000117** `javac-0001` (`defects/javac/`) + - [javac-0001-graphutils-active-flag.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000121** `javac-0005` (`defects/javac/`) + - [javac-0005-inferencecontext-containsall-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000123** `javac-0007` (`defects/javac/`) + - [javac-0007-inferencecontext-notify-diff-hoist.patch] No known defective pattern found in removed lines (may be correct for this project) + - [javac-0007-inferencecontext-notify-diff-hoist.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000953** `jellyfin-0002-0002` (`defects/jellyfin-0002/`) + - [jellyfin-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [jellyfin-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001219** `jicofo-0002-0002` (`defects/jicofo-0002/`) + - [jicofo-0002-stream-key-logged-cleartext.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001109** `jitsi-meet-0004-0004` (`defects/jitsi-meet-0004/`) + - [jitsi-meet-0004-visitors-map-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001017** `juicefs-0001-0001` (`defects/juicefs-0001/`) + - [juicefs-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000130** `julia-0001` (`defects/julia/`) + - [0001-isrelocatable-set-membership.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000738** `kafka-0002` (`defects/kafka/`) + - [kafka-0001-0002-stickassignor-hashset.patch] Header UNDF ID UNDF-2026-000000131 != registry UNDF-2026-000000738 + - [kafka-0002-sticky-assignor-topics-hashset.patch] +5 lines, -5 lines, fix signature confirmed +- **UNDF-2026-000000451** `kafka-0009` (`defects/kafka/`) + - [kafka-0009-streams-graphgraceutil-diamond-recursion-memoize.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001111** `kdenlive-0009` (`defects/kdenlive/`) + - [kdenlive-0009-lumacache-qtconcurrent-race.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000132** `keystone-0001` (`defects/keystone/`) + - [keystone-0001-token-roles-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [keystone-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001113** `kicad-0003-0003` (`defects/kicad-0003/`) + - [kicad-0003-netlist-updater-findpad-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000134** `kotlin-0001` (`defects/kotlin/`) + - [kotlin-0001-collectreachable-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001216** `krita-0001-0001` (`defects/krita-0001/`) + - [krita-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001114** `kronos-0001-0001` (`defects/kronos-0001/`) + - [kronos-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001115** `kronos-0002-0002` (`defects/kronos-0002/`) + - [kronos-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000138** `kubernetes-0003` (`defects/kubernetes/`) + - [kubernetes-0003-job-tracking-finalizer-redundant-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001116** `langchain-0001-0001` (`defects/langchain-0001/`) + - [langchain-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000141** `libgit2-0001` (`defects/libgit2/`) + - [0001-refdb_fs-replace-O-R-packed-ref-scan-with-O-logR-bi.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0001-refdb_fs-replace-O-R-packed-ref-scan-with-O-logR-bi.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001117** `libjpeg-turbo-0001-0001` (`defects/libjpeg-turbo-0001/`) + - [libjpeg-turbo-0001-rdcolmap-ppm-color-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001120** `libtiff-0001-0001` (`defects/libtiff-0001/`) + - [libtiff-0001-dirread-dedup-O2.patch] No known defective pattern found in removed lines (may be correct for this project) + - [libtiff-0001-dirread-dedup-O2.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001122** `linapple-0001-0001` (`defects/linapple-0001/`) + - [linapple-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linapple-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000143** `linphone-0001` (`defects/linphone/`) + - [0001-offeranswer-hashmap-codec-lookup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000144** `linux-0001` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0001-headerdep-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000145** `linux-0002` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000145 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0002-audit-filter-inodes-quadratic.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0002-audit-filter-inodes-quadratic.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000146** `linux-0003` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000146 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0003-dev-alloc-name-nested-altname.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000147** `linux-0004` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000147 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0004-neigh-parms-xarray-lookup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000148** `linux-0005` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000148 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0005-component-find-quadratic.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000149** `linux-0006` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000149 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0006-btf-module-scan-hash.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000150** `linux-0007` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000150 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0007-pktgen-thread-dev-xarray.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000151** `linux-0008` (`defects/linux/`) + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] Header UNDF ID UNDF-2026-000000144 != registry UNDF-2026-000000151 + - [linux-0001-0002-0003-0004-0005-0006-0007-0008-hashstruct.patch] No known defective pattern found in removed lines (may be correct for this project) + - [linux-0008-taskstats-listener-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000869** `litellm-0001` (`defects/litellm/`) + - [litellm-0001-proxy-server-delete-deployment-list-membership.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000152** `llvm-0001` (`defects/llvm/`) + - [llvm-0001-dagcombiner-visitTokenFactor-SmallVector-is_contained-O-N2.patch] No known defective pattern found in removed lines (may be correct for this project) + - [llvm-0001-globalsmodref-sccset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000153** `llvm-0002` (`defects/llvm/`) + - [llvm-0002-aliasset-memorylocations-denseset.patch] No known defective pattern found in removed lines (may be correct for this project) + - [llvm-0002-hotcoldsplitting-getOutliningPenalty-Region-O-R2.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000154** `llvm-0003` (`defects/llvm/`) + - [llvm-0003-lcssa-exitblocks-smallptrset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000155** `llvm-0004` (`defects/llvm/`) + - [llvm-0004-domconditioncache-denseset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000156** `llvm-0005` (`defects/llvm/`) + - [llvm-0005-assumptioncache-transfer-denseset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000774** `llvm-0006` (`defects/llvm/`) + - [llvm-0006-partialinlining-IsSingleExit-BlockList-O-N2.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000157** `love2d-0001` (`defects/love2d/`) + - [love2d-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000705** `lua-0001` (`defects/lua/`) + - [0001-searchupvalue-hash-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000159** `luigi-0001` (`defects/luigi/`) + - [luigi-0001-deps-dfs-path-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [luigi-0001-upstream-status-visited-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000160** `mariadb-0001` (`defects/mariadb/`) + - [mariadb-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000161** `mariadb-0002` (`defects/mariadb/`) + - [mariadb-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000162** `mattermost-0001` (`defects/mattermost/`) + - [0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [mattermost-0001-notification-push-map.patch] +12 lines, -2 lines, fix signature confirmed +- **UNDF-2026-000000164** `maven-0003` (`defects/maven/`) + - [maven-0003-cycle-index-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000165** `maven-0004` (`defects/maven/`) + - [maven-0004-graph-builder-sorted-projects-index-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000166** `maven-0005` (`defects/maven/`) + - [maven-0005-build-plan-logger-sorted-nodes-index-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001050** `mednafen-0001-0001` (`defects/mednafen-0001/`) + - [mednafen-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001124** `melonds-0001-0001` (`defects/melonds-0001/`) + - [melonds-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000348** `memcached-0001` (`defects/memcached/`) + - [0001-slabs-clsid-binary-search.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0001-slabs-clsid-binary-search.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000170** `mesa-0001` (`defects/mesa/`) + - [mesa-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000412** `meson-0002` (`defects/meson/`) + - [meson-0002-link-whole-diamond-recursion.patch] No known defective pattern found in removed lines (may be correct for this project) + - [meson-0002-link-whole-diamond-recursion.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001126** `mgba-0001-0001` (`defects/mgba-0001/`) + - [mgba-0001-sm83-breakpoint-linear-scan.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000946** `minetest-0004-0004` (`defects/minetest-0004/`) + - [minetest-0004.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000947** `minetest-0005-0005` (`defects/minetest-0005/`) + - [minetest-0005.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000943** `monogame-0003-0003` (`defects/monogame-0003/`) + - [monogame-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001051** `mupen64plus-0001-0001` (`defects/mupen64plus-0001/`) + - [mupen64plus-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001128** `musescore-0002-0002` (`defects/musescore-0002/`) + - [musescore-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000175** `mysql-0001` (`defects/mysql/`) + - [mysql-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000177** `mysql-0003` (`defects/mysql/`) + - [mysql-0003-setup-fields-find.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000879** `nagioscore-0001-0001` (`defects/nagioscore-0001/`) + - [nagioscore-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [nagioscore-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000880** `nagioscore-0002-0002` (`defects/nagioscore-0002/`) + - [nagioscore-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000179** `nats-server-0001` (`defects/nats-server/`) + - [nats-0001-peer-dedup-map.patch] +9 lines, -5 lines, fix signature confirmed + - [nats-server-0001-diff-routes-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000750** `nats-server-0002` (`defects/nats-server/`) + - [nats-server-0002-diff-routes-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000813** `neovim-0001` (`defects/neovim/`) + - [neovim-0001-ins-compl-add-duplicate-check.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001002** `netpanzer-0002-0002` (`defects/netpanzer-0002/`) + - [netpanzer-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000182** `networkx-0001` (`defects/networkx/`) + - [nx-0001-cycles-B-defaultdict-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000169** `networkx-0002` (`defects/networkx/`) + - [nx-0002-kcutsets-seen-frozenset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000183** `neutron-0001` (`defects/neutron/`) + - [neutron-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000184** `neutron-0002` (`defects/neutron/`) + - [neutron-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001019** `nfs-ganesha-0001-0001` (`defects/nfs-ganesha-0001/`) + - [nfs-ganesha-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [nfs-ganesha-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001020** `nfs-ganesha-0002-0002` (`defects/nfs-ganesha-0002/`) + - [nfs-ganesha-0002.patch] No removed lines (-) — additive/guard-insertion patch (no replace) + - [nfs-ganesha-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001021** `nfs-utils-0001-0001` (`defects/nfs-utils-0001/`) + - [nfs-utils-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001022** `nfs-utils-0002-0002` (`defects/nfs-utils-0002/`) + - [nfs-utils-0002.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000185** `nginx-0001` (`defects/nginx/`) + - [nginx-0001-link-multi-headers-hash.patch] No known defective pattern found in removed lines (may be correct for this project) + - [nginx-0001-link-multi-headers-hash.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) + - [nginx-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000188** `nova-0001` (`defects/nova/`) + - [nova-0001-scheduler-selected-hosts-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [nova-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000728** `nova-0002` (`defects/nova/`) + - [nova-0002-scheduler-forced-hosts-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000806** `obs-studio-0001` (`defects/obs-studio/`) + - [obs-studio-0001-audio-render-order-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000864** `ofbiz-0001-0001` (`defects/ofbiz-0001/`) + - [ofbiz-0001-payment-retry-list-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000399** `ompi-0001` (`defects/ompi/`) + - [ompi-0001-group-ops-process-name-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000198** `onos-0003` (`defects/onos/`) + - [onos-0003-roleinfo-backups-immutablelist-linear.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000948** `open-webui-0001-0001` (`defects/open-webui-0001/`) + - [open-webui-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000199** `openbsd-0001` (`defects/openbsd/`) + - [openbsd-0001-pf-osfp-validate-quadratic.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000200** `openbsd-0002` (`defects/openbsd/`) + - [openbsd-0002-ifa-ifwithaddr-nested-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001133** `openemu-0001-0001` (`defects/openemu-0001/`) + - [openemu-0001-setup-assistant-knownCores-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000900** `openfoam-0001-0001` (`defects/openfoam-0001/`) + - [openfoam-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001134** `openfoam-0002-0002` (`defects/openfoam-0002/`) + - [openfoam-0002-cfcfacetocelstencil-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001221** `openfoam-0003-0003` (`defects/openfoam-0003/`) + - [openfoam-0003-dsmc-typeId-lookup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001135** `openmsx-0001-0001` (`defects/openmsx-0001/`) + - [openmsx-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001136** `openoffice-0001-0001` (`defects/openoffice-0001/`) + - [openoffice-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001137** `openoffice-0002-0002` (`defects/openoffice-0002/`) + - [openoffice-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001202** `openscad-0003-0003` (`defects/openscad-0003/`) + - [openscad-0003-octoprint-token-log-redact.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001138** `openshot-0001-0001` (`defects/openshot-0001/`) + - [openshot-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000201** `opensmtpd-0001` (`defects/opensmtpd/`) + - [opensmtpd-0001-mta-task-lookup-dict.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000727** `opensmtpd-0002` (`defects/opensmtpd/`) + - [opensmtpd-0002-ruleset-dispatch-index.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000202** `openssl-0001` (`defects/openssl/`) + - [openssl-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000203** `openssl-0002` (`defects/openssl/`) + - [openssl-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000204** `openvpn-0001` (`defects/openvpn/`) + - [openvpn-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [openvpn-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000205** `otel-collector-0001` (`defects/otel-collector/`) + - [otel-collector-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000709** `otel-collector-0002` (`defects/otel-collector/`) + - [otel-collector-0002-pprofile-string-table-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000206** `ovs-0001` (`defects/ovs/`) + - [ovs-0001-dpif-offload-port-add-linear-provider-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000207** `panda3d-0001` (`defects/panda3d/`) + - [panda3d-0001-camera-display-region-unordered-set.patch] +6 lines, -7 lines, fix signature confirmed + - [panda3d-0001-nodepath-collection-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000208** `panda3d-0002` (`defects/panda3d/`) + - [panda3d-0002-graphics-output-display-region-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000885** `pcsx2-0002-0002` (`defects/pcsx2-0002/`) + - [pcsx2-0002-gscapture-codec-dedup-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000209** `peewee-0001` (`defects/peewee/`) + - [peewee-0001-print-table-accum-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [peewee-0001-sorted-field-list-bisect-index.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000210** `perl5-0001` (`defects/perl5/`) + - [0001-pad-findlex-hash-lookup.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001140** `pgbouncer-0001-0001` (`defects/pgbouncer-0001/`) + - [pgbouncer-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [pgbouncer-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001188** `pgbouncer-0002-0002` (`defects/pgbouncer-0002/`) + - [pgbouncer-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000211** `phoenix-0001` (`defects/phoenix/`) + - [phoenix-0001-channel-dispatch-event-intercepts-mapset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000213** `php-0001` (`defects/php/`) + - [0001-named-arg-compile-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000214** `php-0002` (`defects/php/`) + - [0002-named-arg-runtime-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001141** `pidgin-0001-0001` (`defects/pidgin-0001/`) + - [pidgin-0001-permit-list-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000984** `pioneer-0001-0001` (`defects/pioneer-0001/`) + - [pioneer-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000985** `pioneer-0002-0002` (`defects/pioneer-0002/`) + - [pioneer-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000986** `pioneer-0003-0003` (`defects/pioneer-0003/`) + - [pioneer-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000215** `pip-0001` (`defects/pip/`) + - [pip-0001-cache-support-index-min-precomputed-dict.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001143** `pitivi-0001-0001` (`defects/pitivi-0001/`) + - [pitivi-0001-update-asset-thumbs-list-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001144** `play-0001-0001` (`defects/play-0001/`) + - [play-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [play-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000216** `postfix-0001` (`defects/postfix/`) + - [postfix-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000217** `postfix-0002` (`defects/postfix/`) + - [postfix-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000731** `postgres-0001` (`defects/postgres/`) + - [postgres-0001-type-inherits-from-htab.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000218** `postgresql-0006` (`defects/postgresql/`) + - [postgresql-0006-add-to-flat-tlist-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000219** `postgresql-0007` (`defects/postgresql/`) + - [postgresql-0007-add-new-columns-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000220** `postgresql-0008` (`defects/postgresql/`) + - [postgresql-0008-paraminfo-equal-hashops.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000221** `postgresql-0009` (`defects/postgresql/`) + - [postgresql-0009-type-inherits-from-visited-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000893** `proton-0001` (`defects/proton/`) + - [proton-0001-find_iface_constructor-linear-strcmp-scan.patch] No known defective pattern found in removed lines (may be correct for this project) + - [proton-0001-find_iface_constructor-linear-strcmp-scan.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000894** `proton-0002` (`defects/proton/`) + - [proton-0002-merge_user_dir-extant_dirs-list-explosion.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000506** `pulsar-0002` (`defects/pulsar/`) + - [pulsar-0002-persistent-topic-replication-cluster-list-contains.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000226** `puppet-0001` (`defects/puppet/`) + - [puppet-0001-paths-in-cycle-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000230** `pylons-0003` (`defects/pylons/`) + - [pylons-0003-toposorter-order-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001146** `r-lang-0001-0001` (`defects/r-lang-0001/`) + - [r-lang-0001-namespace-users-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000236** `r-source-0001` (`defects/r-source/`) + - [0001-rapply-class-match-early-exit.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0001-rapply-class-match-early-exit.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000239** `rabbitmq-0001` (`defects/rabbitmq/`) + - [rabbitmq-0001-fifo-service-queue-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [rmq-0001-classic-queue-pending-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000240** `rabbitmq-0002` (`defects/rabbitmq/`) + - [rabbitmq-0002-queue-consumers-blocked-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [rmq-0002-sac-coordinator-gb-sets.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000360** `rabbitmq-0003` (`defects/rabbitmq/`) + - [rmq-0003-check-declare-args-sets.patch] No known defective pattern found in removed lines (may be correct for this project) + - [rmq-0003-check-declare-args-sets.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000387** `rabbitmq-0004` (`defects/rabbitmq/`) + - [rmq-0004-check-arguments-key-sets.patch] No known defective pattern found in removed lines (may be correct for this project) + - [rmq-0004-check-arguments-key-sets.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000241** `rails-0001` (`defects/rails/`) + - [rails-0001-preloader-batch-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000242** `rails-0002` (`defects/rails/`) + - [rails-0002-callbacks-chain-index.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000243** `rails-0003` (`defects/rails/`) + - [rails-0003-enumerable-excluding-set.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000244** `rails-0004` (`defects/rails/`) + - [rails-0004-enumerable-in-order-of-series-map.patch] No known defective pattern found in removed lines (may be correct for this project) + - [rails-0004-enumerable-in-order-of-series-map.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000245** `rails-0005` (`defects/rails/`) + - [rails-0005-schema-dumper-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000247** `rails-0008` (`defects/rails/`) + - [rails-0008-enum-value-method-names-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000251** `rails-0012` (`defects/rails/`) + - [rails-0012-options-for-select-selected-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000254** `rails-0015` (`defects/rails/`) + - [rails-0015-schema-statements-duplicate-version-hash.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000256** `rails-0017` (`defects/rails/`) + - [rails-0017-rename-column-indexes-set.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000258** `ray-0001` (`defects/ray/`) + - [ray-0001-local-node-provider-list-membership.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000913** `ray-project-0001` (`defects/ray-project/`) + - [ray-project-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000259** `raylib-0001` (`defects/raylib/`) + - [raylib-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [raylib-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000260** `redis-0001` (`defects/redis/`) + - [0001-sinter-listpack-promote-to-htset.patch] No removed lines (-) — additive/guard-insertion patch (no replace) + - [redis-0001-acl-upcoming-channels-dict.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000261** `redis-0002` (`defects/redis/`) + - [0002-acl-upcoming-channels-dict.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000262** `redis-0003` (`defects/redis/`) + - [0003-acl-selector-patterns-dict.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000876** `redmine-0001` (`defects/redmine/`) + - [redmine-0001-issue-blocks-bfs-array.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000877** `redmine-0002` (`defects/redmine/`) + - [redmine-0002-issue-would_reschedule-bfs-array.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001148** `redmine-0004-0004` (`defects/redmine-0004/`) + - [redmine-0004-role-add-permission-set.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001231** `redot-0001` (`defects/redot/`) + - [redot-0001-scene-tree-group-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001234** `redot-0004` (`defects/redot/`) + - [redot-0004-softbody-node-links-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001236** `redot-0006` (`defects/redot/`) + - [redot-0006-skeleton3d-child-bones-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001237** `redot-0007` (`defects/redot/`) + - [redot-0007-rest-fixer-bones-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001238** `redot-0008` (`defects/redot/`) + - [redot-0008-gltf-extensions-used-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001239** `redot-0009` (`defects/redot/`) + - [redot-0009-font-is-cyclic-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001240** `redot-0010` (`defects/redot/`) + - [redot-0010-font-update-rids-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001005** `regamedll-0001-0001` (`defects/regamedll-0001/`) + - [regamedll-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001028** `regamedll-0002-0002` (`defects/regamedll-0002/`) + - [regamedll-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000969** `renpy-0001-0001` (`defects/renpy-0001/`) + - [renpy-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000849** `retroarch-0001-0001` (`defects/retroarch-0001/`) + - [retroarch-0001-playlist-entry-exists-linear-scan.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001149** `retroarch-0002-0002` (`defects/retroarch-0002/`) + - [retroarch-0002-core-info-database-supports-linear-scan.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001151** `rocketchat-0004` (`defects/rocketchat/`) + - [0004.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001154** `rpcs3-0004` (`defects/rpcs3/`) + - [rpcs3-0004-np-room-password-cwe312.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000265** `ruby-0001` (`defects/ruby/`) + - [0001-kwarg-setup-hash-lookup.patch] No known defective pattern found in removed lines (may be correct for this project) + - [rubocop-0001-ignored-nodes-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [ruby-0001-class-include-super-chain-scan.patch] No known defective pattern found in removed lines (may be correct for this project) + - [ruby-0001-class-include-super-chain-scan.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) + - [solargraph-0001-inference-stack-thread-local-set.patch] +13 lines, -6 lines, fix signature confirmed +- **UNDF-2026-000000266** `ruby-0002` (`defects/ruby/`) + - [rubocop-0002-redundant-self-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [solargraph-0002-constants-skip-set.patch] No known defective pattern found in removed lines (may be correct for this project) + - [solargraph-0002-constants-skip-set.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001156** `ruffle-0002-0002` (`defects/ruffle-0002/`) + - [ruffle-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000771** `rustc-0001` (`defects/rustc/`) + - [rustc-0001-0002-evalstack-swapremove.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000658** `salt-0001` (`defects/salt/`) + - [salt-0001-cloud-cycle-detection-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000726** `salt-0003` (`defects/salt/`) + - [salt-0003-saltclass-seen-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000269** `saltstack-0001` (`defects/saltstack/`) + - [salt-0001-cloud-has-loop-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001030** `samba-0001-0001` (`defects/samba-0001/`) + - [samba-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001031** `samba-0002-0002` (`defects/samba-0002/`) + - [samba-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001054** `sameboy-0001-0001` (`defects/sameboy-0001/`) + - [sameboy-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001055** `sameboy-0002-0002` (`defects/sameboy-0002/`) + - [sameboy-0002.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000713** `scala-0002` (`defects/scala/`) + - [scala-0002-refchecks-intersection-is-empty-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001213** `scribus-0004` (`defects/scribus/`) + - [scribus-0004-file-save-names-contains-O-N2.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001157** `scummvm-0001-0001` (`defects/scummvm-0001/`) + - [scummvm-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001158** `scummvm-0002-0002` (`defects/scummvm-0002/`) + - [scummvm-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000751** `sdl-0001` (`defects/sdl/`) + - [sdl-0001-gamepad-mapping-tail-walk.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000272** `sdl2-0001` (`defects/sdl2/`) + - [sdl2-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000273** `sdl3-0001` (`defects/sdl3/`) + - [sdl3-0001-mapping-change-hash-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000275** `seaorm-0002` (`defects/seaorm/`) + - [seaorm-0002-rbac-group-permissions-by-id.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000277** `seaorm-0004` (`defects/seaorm/`) + - [seaorm-0004-topological-sort-from-iter-btreeset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001189** `sendmail-0001-0001` (`defects/sendmail-0001/`) + - [sendmail-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000283** `simplex-chat-0001` (`defects/simplex-chat/`) + - [simplex-chat-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000284** `simplex-chat-0002` (`defects/simplex-chat/`) + - [simplex-chat-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000285** `simplex-chat-0003` (`defects/simplex-chat/`) + - [simplex-chat-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000831** `simplex-chat-0004` (`defects/simplex-chat/`) + - [simplex-chat-0004-introduce-to-remaining-notelem.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001007** `simutrans-0001-0001` (`defects/simutrans-0001/`) + - [simutrans-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001008** `simutrans-0002-0002` (`defects/simutrans-0002/`) + - [simutrans-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001009** `simutrans-0003-0003` (`defects/simutrans-0003/`) + - [simutrans-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000287** `sinatra-0002` (`defects/sinatra/`) + - [sinatra-0002-provides-types-set.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001159** `snort3-0002-0002` (`defects/snort3-0002/`) + - [snort3-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000288** `solc-0001` (`defects/solc/`) + - [solc-0001-callgraph-cyclefinder-uset.patch] No known defective pattern found in removed lines (may be correct for this project) + - [solc-0001-typecheck-overload-unordered-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001160** `solvespace-0001-0001` (`defects/solvespace-0001/`) + - [solvespace-0001-arc-constraint-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000290** `spark-0001` (`defects/spark/`) + - [spark-0001-analyzer-seenwindowaggregates-linkedhashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000932** `sparrow-0002-0002` (`defects/sparrow-0002/`) + - [sparrow-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001039** `speed-dreams-0006-0006` (`defects/speed-dreams-0006/`) + - [speed-dreams-0006.patch] No known defective pattern found in removed lines (may be correct for this project) + - [speed-dreams-0006.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000292** `spidermonkey-0001` (`defects/spidermonkey/`) + - [sm-0001-linearsum-add-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000294** `spirv-cross-0002` (`defects/spirv-cross/`) + - [spirv-cross-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000614** `spring-0002` (`defects/spring/`) + - [spring-0001-0002-beanfactory-linkedhashset.patch] Header UNDF ID UNDF-2026-000000295 != registry UNDF-2026-000000614 +- **UNDF-2026-000000539** `spring-0004` (`defects/spring/`) + - [spring-0003-0004-eventmulticaster-linkedhashset.patch] Header UNDF ID UNDF-2026-000000296 != registry UNDF-2026-000000539 +- **UNDF-2026-000000988** `spring-rts-0002-0002` (`defects/spring-rts-0002/`) + - [spring-rts-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [spring-rts-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000297** `sqlalchemy-0001` (`defects/sqlalchemy/`) + - [sqlalchemy-0001-values-bindparam-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000298** `sqlalchemy-0002` (`defects/sqlalchemy/`) + - [sqlalchemy-0002-evaluated-keys-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000299** `sqlite-0001` (`defects/sqlite/`) + - [sqlite-0001-checkcolumnoverlap-hash.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000300** `sqlite-0003` (`defects/sqlite/`) + - [sqlite-0003-fk-column-resolution.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000870** `squid-0001-0001` (`defects/squid-0001/`) + - [squid-0001-notepairs-appendnewonly-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001162** `squid-0002-0002` (`defects/squid-0002/`) + - [squid-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001163** `squid-0003-0003` (`defects/squid-0003/`) + - [squid-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001185** `squid-0004-0004` (`defects/squid-0004/`) + - [squid-0004.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000301** `storm-0001` (`defects/storm/`) + - [storm-0001-worker-localtaskids-hashset.patch] +3 lines, -4 lines, fix signature confirmed + - [storm-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000815** `superset-0001` (`defects/superset/`) + - [superset-0001-security-manager-builtin-role-pvm-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000816** `superset-0002` (`defects/superset/`) + - [superset-0002-dashboard-filter-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000817** `superset-0003` (`defects/superset/`) + - [superset-0003-dataset-import-metric-column-dedup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000875** `suricata-0001-0001` (`defects/suricata-0001/`) + - [suricata-0001-threshold-sig-lookup-hashmap.patch] No removed lines (-) — additive/guard-insertion patch (no replace) + - [suricata-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001186** `suricata-0002-0002` (`defects/suricata-0002/`) + - [suricata-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000545** `swift-0001` (`defects/swift/`) + - [swift-0001-loadable-by-address-linear-membership.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000305** `synapse-0001` (`defects/synapse/`) + - [synapse-0001-sync-newly-joined-rooms-list-membership.patch] No known defective pattern found in removed lines (may be correct for this project) + - [synapse-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000306** `synapse-0002` (`defects/synapse/`) + - [synapse-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001229** `systemd-0004-0004` (`defects/systemd-0004/`) + - [systemd-0004-seccomp-strv-to-set.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001167** `taiga-0001-0001` (`defects/taiga-0001/`) + - [taiga-0001-events-threadlocal-contextvar.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000822** `telegraf-0001` (`defects/telegraf/`) + - [telegraf-0001-dedup-getfield-quadratic.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000307** `terraform-0001` (`defects/terraform/`) + - [terraform-0001-tarjan-instack-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) + - [tf-0001-dag-tarjan-onstack-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000308** `terraform-0002` (`defects/terraform/`) + - [tf-0002-dag-graph-edgesto-upedges.patch] No known defective pattern found in removed lines (may be correct for this project) + - [tf-0002-dag-graph-edgesto-upedges.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000468** `threejs-0007` (`defects/threejs/`) + - [threejs-0007-node-traverse-diamond-recursion.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001169** `thunderbird-0008-0008` (`defects/thunderbird-0008/`) + - [thunderbird-0008_OAuth2_accessToken_logged_CWE312.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000767** `tidb-0003` (`defects/tidb/`) + - [tidb-0003-list-partition-group-intersect-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000314** `tinkerpop-0001` (`defects/tinkerpop/`) + - [tinkerpop-0001-path-issimple-hashset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000316** `tor-0001` (`defects/tor/`) + - [tor-0001-routerlist-digestset.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000317** `tor-0002` (`defects/tor/`) + - [tor-0002-nodelist-family-id-strmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000318** `tor-0003` (`defects/tor/`) + - [tor-0003-kist-readd-heap-idx-o1.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000557** `traefik-0001` (`defects/traefik/`) + - [traefik-0001-ip-checker-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000558** `traefik-0002` (`defects/traefik/`) + - [traefik-0002-cors-origin-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000914** `transformers-0001` (`defects/transformers/`) + - [transformers-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001170** `transformers-0002-0002` (`defects/transformers-0002/`) + - [transformers-0002-regnet-hf-token-logged.patch] No known defective pattern found in removed lines (may be correct for this project) + - [transformers-0002-regnet-hf-token-logged.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001171** `transformers-0003-0003` (`defects/transformers-0003/`) + - [transformers-0003-convert-tokens-all-special-list-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001223** `transformers-0004-0004` (`defects/transformers-0004/`) + - [transformers-0004-wav2vec2-esm-all-special-ids-loop-scan.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000933** `trezor-0001-0001` (`defects/trezor-0001/`) + - [trezor-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + - [trezor-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000934** `trezor-0002-0002` (`defects/trezor-0002/`) + - [trezor-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000897** `tryton-0001-0001` (`defects/tryton-0001/`) + - [tryton-0001-modelstorage-save-values.patch] No known defective pattern found in removed lines (may be correct for this project) + - [tryton-0001-modelview-changed-values.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000441** `typescript-0003` (`defects/typescript/`) + - [typescript-0003-hasbasetype-diamond-recursion.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001172** `unbound-0001-0001` (`defects/unbound-0001/`) + - [unbound-0001-authzone-rdata-duplicate-O-N2.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000323** `unrealircd-0001` (`defects/unrealircd/`) + - [0001-has-common-channels-set-lookup.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000324** `unrealircd-0002` (`defects/unrealircd/`) + - [0002-sjoin-membership-backpointer.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0002-sjoin-membership-backpointer.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000326** `valkey-0001` (`defects/valkey/`) + - [0001-sinter-listpack-promote-to-htset.patch] No removed lines (-) — additive/guard-insertion patch (no replace) + - [valkey-0001-acl-key-pattern-dict.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000327** `valkey-0002` (`defects/valkey/`) + - [0002-acl-upcoming-channels-dict.patch] No known defective pattern found in removed lines (may be correct for this project) + - [valkey-0002-acl-channel-pattern-dict.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000329** `varnish-0001` (`defects/varnish/`) + - [varnish-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000954** `veloren-0001-0001` (`defects/veloren-0001/`) + - [veloren-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000955** `veloren-0002-0002` (`defects/veloren-0002/`) + - [veloren-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [veloren-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001056** `vice-0001-0001` (`defects/vice-0001/`) + - [vice-0001-monitor-breakpoint-list-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) + - [vice-0001-monitor-breakpoint-list-linear-scan.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000717** `victoria-metrics-0002` (`defects/victoria-metrics/`) + - [victoria-metrics-0002-metric-name-hastag-map.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000571** `vim-0001` (`defects/vim/`) + - [vim-0001-ins-compl-add-duplicate-check.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000572** `vim-0002` (`defects/vim/`) + - [vim-0002-sign-placelist-linear-walk.patch] No known defective pattern found in removed lines (may be correct for this project) + - [vim-0002-sign-placelist-linear-walk.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000331** `vlc-0001` (`defects/vlc/`) + - [vlc-0001-randomizer-remove-linear-scan.patch] No known defective pattern found in removed lines (may be correct for this project) + - [vlc-0001.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000718** `vlc-0002` (`defects/vlc/`) + - [vlc-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000874** `vllm-0001` (`defects/vllm/`) + - [vllm-0001-lora-convert-mapping-index.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000334** `wasmer-0001` (`defects/wasmer/`) + - [wasmer-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000337** `wasmtime-0002` (`defects/wasmtime/`) + - [wasmtime-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000340** `weechat-0001` (`defects/weechat/`) + - [0001-irc-nick-search-hashtable.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000907** `weechat-0001-0001` (`defects/weechat-0001/`) + - [weechat-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000915** `wekan-0001-0001` (`defects/wekan-0001/`) + - [wekan-0001.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000886** `wine-0001-0001` (`defects/wine-0001/`) + - [wine-0001-loader-dependency-dedup.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001193** `wine-0002-0002` (`defects/wine-0002/`) + - [wine-0002-basic-auth-credential-trace-leak.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001194** `wine-0003-0003` (`defects/wine-0003/`) + - [wine-0003-crypt32-chain-cycle-detection.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001195** `wine-0004-0004` (`defects/wine-0004/`) + - [wine-0004-token-privilege-linear-scan.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000000341** `wireshark-0001` (`defects/wireshark/`) + - [wireshark-0001-proto-data-wmem-map.patch] No known defective pattern found in removed lines (may be correct for this project) + - [wireshark-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001177** `woodpecker-0001-0001` (`defects/woodpecker-0001/`) + - [0001-step-builder-filter-items-hashmap.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001178** `woodpecker-0002-0001` (`defects/woodpecker-0002/`) + - [0001-token-parserequest-cwe312-fix.patch] No known defective pattern found in removed lines (may be correct for this project) + - [0001-token-parserequest-cwe312-fix.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001010** `xash3d-0001-0001` (`defects/xash3d-0001/`) + - [xash3d-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001011** `xash3d-0002-0002` (`defects/xash3d-0002/`) + - [xash3d-0002.patch] No removed lines (-) — additive/guard-insertion patch (no replace) +- **UNDF-2026-000001012** `xash3d-0003-0003` (`defects/xash3d-0003/`) + - [xash3d-0003.patch] No known defective pattern found in removed lines (may be correct for this project) + - [xash3d-0003.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000000989** `xonotic-0001-0001` (`defects/xonotic-0001/`) + - [xonotic-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000990** `xonotic-0002-0002` (`defects/xonotic-0002/`) + - [xonotic-0002.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000991** `xonotic-0003-0003` (`defects/xonotic-0003/`) + - [xonotic-0003.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000992** `xonotic-0004-0004` (`defects/xonotic-0004/`) + - [xonotic-0004.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001180** `yabause-0001-0001` (`defects/yabause-0001/`) + - [yabause-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000881** `zabbix-0001-0001` (`defects/zabbix-0001/`) + - [zabbix-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000882** `zabbix-0002-0002` (`defects/zabbix-0002/`) + - [zabbix-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [zabbix-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001211** `zathura-0001-0001` (`defects/zathura-0001/`) + - [zathura-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000000342** `zeek-0001` (`defects/zeek/`) + - [zeek-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001181** `zephyr-0001-0001` (`defects/zephyr-0001/`) + - [zephyr-0001.patch] No known defective pattern found in removed lines (may be correct for this project) +- **UNDF-2026-000001182** `zephyr-0002-0002` (`defects/zephyr-0002/`) + - [zephyr-0002.patch] No known defective pattern found in removed lines (may be correct for this project) + - [zephyr-0002.patch] No known fix signature found in added lines (may need DEFECTIVE_SIGS update) +- **UNDF-2026-000001183** `zesarux-0001-0001` (`defects/zesarux-0001/`) + - [zesarux-0001.patch] No known defective pattern found in removed lines (may be correct for this project) + +## PENDING-SOURCE entries (source repos not cloned) + +- **UNDF-2026-000000619** `ans-0001` +- **UNDF-2026-000000620** `ans-0002` +- **UNDF-2026-000000621** `argo-0001` +- **UNDF-2026-000000623** `cel-0001` +- **UNDF-2026-000000624** `cfe-0001` +- **UNDF-2026-000000625** `cfe-0002` +- **UNDF-2026-000000626** `cfe-0003` +- **UNDF-2026-000001250** `dragonflybsd-0001` +- **UNDF-2026-000001251** `dragonflybsd-0002` +- **UNDF-2026-000001252** `dragonflybsd-0003` +- **UNDF-2026-000001253** `dragonflybsd-0004` +- **UNDF-2026-000001254** `dragonflybsd-0005` +- **UNDF-2026-000000386** `element-web` +- **UNDF-2026-000000632** `geth-0001` +- **UNDF-2026-000000633** `go-stdlib-0001` +- **UNDF-2026-000000634** `hv-0001` +- **UNDF-2026-000000635** `hv-0002` +- **UNDF-2026-000000636** `igraph-0001` +- **UNDF-2026-000000429** `jami-daemon` +- **UNDF-2026-000000432** `jitsi-videobridge` +- **UNDF-2026-000000466** `nats-0001` +- **UNDF-2026-000001255** `netbsd-0001` +- **UNDF-2026-000001256** `netbsd-0002` +- **UNDF-2026-000001257** `netbsd-0003` +- **UNDF-2026-000001258** `netbsd-0004` +- **UNDF-2026-000000641** `nx-0001` +- **UNDF-2026-000000642** `nx-0002` +- **UNDF-2026-000000883** `openscad-0001` +- **UNDF-2026-000000496** `otel-collector` +- **UNDF-2026-000000648** `pre-0001` +- **UNDF-2026-000000649** `pre-0002` +- **UNDF-2026-000000519** `r-source` +- **UNDF-2026-000001006** `regamedll-cs-0001-0001` +- **UNDF-2026-000000650** `rmq-0001` +- **UNDF-2026-000000651** `rmq-0002` +- **UNDF-2026-000000652** `rmq-0003` +- **UNDF-2026-000000653** `rmq-0004` +- **UNDF-2026-000000654** `rmq-0005` +- **UNDF-2026-000000656** `rubocop-0001` +- **UNDF-2026-000000657** `rubocop-0002` +- **UNDF-2026-000000531** `simplex-chat` +- **UNDF-2026-000000659** `sm-0001` +- **UNDF-2026-000000660** `sm-0002` +- **UNDF-2026-000000661** `sm-0003` +- **UNDF-2026-000000662** `sm-0004` +- **UNDF-2026-000000663** `solargraph-0001` +- **UNDF-2026-000000664** `solargraph-0002` +- **UNDF-2026-000000945** `supertuxkart-0002-0002` +- **UNDF-2026-000000668** `tf-0001` +- **UNDF-2026-000000669** `tf-0002` +- **UNDF-2026-000000670** `tf-aws-0001` diff --git a/tests/check_coverage.py b/tests/check_coverage.py new file mode 100644 index 000000000..8aef27cd3 --- /dev/null +++ b/tests/check_coverage.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python3 +""" +check_coverage.py — CI gate for UNDF registry patch coverage. + +Enforces the rule: every UNDF entry in UNDF-REGISTRY.json must have at least +a patch file present in its defect directory. This is the minimum bar for a +new indicator to be considered "covered." Structural quality (UNDF header, +defective/fix signatures) is enforced separately by scan_verify.py. + +This script is designed to run on every commit to catch regressions early: + - New entry added to UNDF-REGISTRY.json without a patch file → FAIL + - Existing patch deleted without removing the registry entry → FAIL + - Entry has a patch file (even a stub) → PASS (quality via scan_verify) + +Exit codes: + 0 — all entries have at least one patch file (or are pending source clone) + 1 — one or more entries are missing patch files (NO_PATCH status) + 2 — registry not found or unreadable + +Usage: + python3 tests/check_coverage.py # from repo root + python3 tests/check_coverage.py --verbose # list NO_PATCH entries + python3 tests/check_coverage.py --include-pending # also fail on PENDING + +Run via Makefile: + make coverage-check +""" + +import json +import sys +import argparse +from pathlib import Path +from collections import defaultdict + + +# ── Constants ───────────────────────────────────────────────────────────────── + +REPO_ROOT = Path(__file__).parent.parent # java-topology/ +REGISTRY = REPO_ROOT / "UNDF-REGISTRY.json" +DEFECTS_DIR = REPO_ROOT / "defects" + + +# ── Reuse patch-finding logic from scan_verify ───────────────────────────────── + +def find_patch_files_for_slug(slug: str) -> list: + """Return patch files belonging to this slug, or [] if none found.""" + proj_dir = slug.rsplit("-", 1)[0] + patch_dir = DEFECTS_DIR / proj_dir / "patch" + if not patch_dir.is_dir(): + return [] # PENDING — source not cloned + + all_patches = [p for p in patch_dir.iterdir() if p.suffix == ".patch"] + if not all_patches: + return [] + + entry_suffix = slug.rsplit("-", 1)[-1] + matched = [p for p in all_patches if entry_suffix in p.stem] + return sorted(matched) + + +def proj_dir_exists(slug: str) -> bool: + """True if the project directory exists (source cloned).""" + proj_dir = slug.rsplit("-", 1)[0] + return (DEFECTS_DIR / proj_dir).is_dir() + + +# ── Main ────────────────────────────────────────────────────────────────────── + +def main(): + parser = argparse.ArgumentParser(description=__doc__.strip().split("\n")[0]) + parser.add_argument("--verbose", action="store_true", help="List NO_PATCH entries") + parser.add_argument("--include-pending", action="store_true", help="Also fail on PENDING (source not cloned)") + args = parser.parse_args() + + if not REGISTRY.exists(): + print(f"ERROR: Registry not found at {REGISTRY}", file=sys.stderr) + sys.exit(2) + + with REGISTRY.open() as f: + registry = json.load(f) + + no_patch = [] + pending = [] + covered = [] + + for slug, undf_id in sorted(registry.items()): + if not proj_dir_exists(slug): + pending.append((slug, undf_id)) + continue + + patches = find_patch_files_for_slug(slug) + if patches: + covered.append((slug, undf_id, patches)) + else: + no_patch.append((slug, undf_id)) + + total = len(registry) + n_covered = len(covered) + n_nopatch = len(no_patch) + n_pending = len(pending) + + pct = 100 * n_covered / (total - n_pending) if total > n_pending else 100.0 + + print(f"COVERAGE CHECK — {total} UNDF entries") + print(f" Covered (patch present): {n_covered}") + print(f" NO_PATCH (dir exists, no patch): {n_nopatch}") + print(f" PENDING (source not cloned): {n_pending}") + print(f" Coverage: {n_covered}/{total - n_pending} ({pct:.1f}%) of clonable entries") + print() + + if args.verbose and no_patch: + print("NO_PATCH entries (patch file required):") + for slug, undf_id in no_patch: + proj_dir = slug.rsplit("-", 1)[0] + print(f" {undf_id} {slug} → defects/{proj_dir}/patch/") + print() + + if args.verbose and args.include_pending and pending: + print("PENDING entries (source not yet cloned):") + for slug, undf_id in pending: + proj_dir = slug.rsplit("-", 1)[0] + print(f" {undf_id} {slug} → defects/{proj_dir}/") + print() + + fail = n_nopatch > 0 + if args.include_pending: + fail = fail or n_pending > 0 + + if fail: + reasons = [] + if n_nopatch: + reasons.append(f"{n_nopatch} entries missing patch files") + if args.include_pending and n_pending: + reasons.append(f"{n_pending} entries pending source clone") + print(f"RESULT: FAIL — {'; '.join(reasons)}") + print(" Add patch files for NO_PATCH entries to pass this gate.") + print(" Structural quality: run 'make scan-verify' for header/sig checks.") + sys.exit(1) + else: + print(f"RESULT: PASS — all {n_covered} clonable entries have patch files") + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/tests/scan_verify.py b/tests/scan_verify.py new file mode 100644 index 000000000..b3cd43d33 --- /dev/null +++ b/tests/scan_verify.py @@ -0,0 +1,464 @@ +#!/usr/bin/env python3 +""" +scan_verify.py — Structural patch verification for all UNDF registry entries. + +For each UNDF entry in UNDF-REGISTRY.json, verifies that the associated patch: + 1. Contains a UNDF header comment with the correct ID + 2. Has removed lines (-) representing the defective pattern + 3. Has added lines (+) representing the fixed pattern + 4. The fix introduces a known O(1) data structure or visited-guard signature + consistent with CWE-407 or related complexity defect remediation + +This gives structural test coverage for all 1,258+ indicators without +requiring the target project to be compiled. Behavioral unit tests in +defects/*/unit/ provide deeper proof for supported languages. + +Exit codes: + 0 — all registered entries with patch files pass structural verification + 1 — one or more patches fail verification (missing UNDF header, no fix sig) + 2 — registry file not found or unreadable + +Usage: + cd tests && python3 scan_verify.py # from tests/ directory + cd tests && python3 scan_verify.py --verbose # per-entry detail + cd tests && python3 scan_verify.py --report # save tests/SCAN-VERIFY-REPORT.md + cd tests && python3 scan_verify.py --fail-on-warn # treat WARN as failure + +Run via Makefile (from tests/ directory): + make scan-verify + make scan-verify-report + make scan-verify-strict +""" + +import json +import os +import re +import sys +import argparse +from pathlib import Path +from collections import defaultdict + + +# ── Constants ───────────────────────────────────────────────────────────────── + +REPO_ROOT = Path(__file__).parent.parent # java-topology/ +REGISTRY = REPO_ROOT / "UNDF-REGISTRY.json" +DEFECTS_DIR = REPO_ROOT / "defects" + +# Patterns that indicate the defective code (what was replaced) +DEFECTIVE_SIGS = [ + # Java + r'\.contains\s*\(', # list.contains() + r'\.indexOf\s*\(', # list.indexOf() + r'\.add\s*\(.*\).*&&.*\.contains', # double add+contains + r'ArrayList\b', # ArrayList used as set + r'LinkedList\b.*contains', # LinkedList.contains + # C++ + r'std::find\s*\(', # std::find in vector + r'std::vector\b', # vector used as set + r'\.count\s*\(.*\)', # map/multimap count as membership + r'std::list\b', # std::list used as set + # Python + r'\bif\b.*\bin\b.*\blist\b', # if x in list (explicit list var) + r'not\s+in\s+self\.', # not in self.something (list member test) + r'\.append\b.*#.*O\(N', # append with O(N) comment + r'\.extend\s*\(.*\bif\b.*\bnot\s+in\b', # extend with not-in guard (O(N) dedup) + r'\bfor\b.*\bif\b.*\bnot\s+in\b', # [x for x in ... if x not in list] + # JavaScript / TypeScript + r'\.find\s*\(\s*\(', # Array.find() — O(N) + r'\.find\s*\(\s*[a-zA-Z]', # arr.find(pred) — O(N) + r'\.includes\s*\(', # Array.includes() — O(N) + r'\.some\s*\(', # Array.some() — O(N) + r'\.indexOf\s*\(', # Array.indexOf() — O(N) + # C# / .NET LINQ + r'\.Any\s*\(', # LINQ Any() — O(N) + r'\.FirstOrDefault\s*\(', # LINQ FirstOrDefault — O(N) + r'\.Where\s*\(', # LINQ Where (in dedup context) + # GLib (C) + r'g_list_find\b', # GLib GList.find + r'g_slist_find\b', # GLib GSList.find + r'g_list_index\b', # GLib GList.index + # Blender / project-specific C + r'BLI_findptr\b', # Blender linked list find + r'BLI_linklist_index\b', # Blender link list index + # Linear scan comments + r'[Ll]inear\s+[Ss]earch', # comment: "Linear search" + r'[Ll]inear\s+scan', # comment: "linear scan" + # Go + r'\[\].*{.*}.*range', # slice used as set + # Ruby + r'\.include\?\s*\(', # Array.include? + # PHP + r'in_array\s*\(', # in_array() + # General: recursion without visited guard + r'def.*recursive|recursive.*def', # Python recursive without visited + r'isCyclic\s*\(.*\)', # cycle check without visited + r'discoverTypes\s*\(.*\)', # type discovery without visited +] + +# Patterns that indicate the fixed code (what was added) +FIX_SIGS = [ + # Java sets / maps + r'HashSet\b', # HashSet + r'LinkedHashSet\b', # LinkedHashSet (ordered) + r'TreeSet\b', # TreeSet + r'ConcurrentHashSet\b', # ConcurrentHashSet + r'EconomicSet\b', # Graal EconomicSet + r'Set<\b', # generic Set + r'HashMap\b', # HashMap (map-based lookup fix) + r'LinkedHashMap\b', # LinkedHashMap + r'ConcurrentHashMap\b', # ConcurrentHashMap + r'\.add\s*\(.*\).*return\s+false', # set.add() returning false + r'!visited\.add\s*\(', # !visited.add() guard + r'if\s*\(\s*visited\.add', # if (visited.add()) + r'if\s*\(!visited', # if (!visited.contains()) + # C++ + r'std::unordered_set\b', # unordered_set + r'std::unordered_map\b', # unordered_map + r'std::set\b', # std::set + r'std::map\b', # std::map + r'absl::flat_hash_set\b', # Abseil flat_hash_set + r'absl::flat_hash_map\b', # Abseil flat_hash_map + r'\.insert\s*\(', # set/map insert() + r'\.emplace\s*\(', # set/map emplace() + # Python + r'\bset\s*\(', # set() + r'\bfrozenset\s*\(', # frozenset() + r'visited\.add\b', # visited.add() + r'if.*not in.*visited', # not in set + r'\{[^}]*\bfor\b[^}]*\bin\b[^}]*\}', # set/dict comprehension {x for x in ...} + r'\bdefaultdict\s*\(', # collections.defaultdict + # Go + r'map\[.*\]struct\{\}', # map[T]struct{} as set + r'make\s*\(\s*map\[', # make(map[...]) — Go map creation + r'seen\s*:?=.*make\s*\(', # seen := make(map...) + # Rust + r'HashMap\s*::\s*new\b', # HashMap::new() + r'HashSet\s*::\s*new\b', # HashSet::new() + r'BTreeMap\s*::\s*new\b', # BTreeMap::new() + r'BTreeSet\s*::\s*new\b', # BTreeSet::new() + r'IndexMap\b', # indexmap crate IndexMap + r'FxHashMap\b', # rustc-hash FxHashMap + r'FxHashSet\b', # rustc-hash FxHashSet + # Haskell + r'S\.fromList\b', # Data.Set.fromList + r'M\.fromList\b', # Data.Map.fromList + r'Data\.Set\b', # Data.Set import/use + r'Data\.Map\b', # Data.Map import/use + # Ruby + r'\.to_a\.uniq\b', # .uniq + r'Set\.new\b', # Set.new + # PHP + r'array_key_exists\s*\(', # array_key_exists for O(1) check + r'\$.*\[.*\]\s*=\s*true', # hash map membership trick + r'\bisset\s*\(', # isset() — O(1) hash key check + # C / general + r'\bHashtable\b', # C-style hashtable type + r'\bhashmap\b', # generic hashmap identifier + r'\bhash_map\b', # C hash_map + r'\bdict\b.*:\s*', # Python dict literal/annotation + r'O\s*\(\s*1\s*\)', # explicit O(1) complexity comment in fix + r'O\s*\(\s*log', # explicit O(log N) comment (binary search fix) + r'\bbsearch\s*\(', # C bsearch (sorted array binary search) + r'\bqsort\s*\(', # C qsort (sort-then-bsearch pattern) + # Qt (C++) + r'\bQHash\b', # Qt QHash + r'\bQSet\b', # Qt QSet + r'\bQMap\b', # Qt QMap (ordered) + # GLib (C) + r'\bGHashTable\b', # GLib hash table type + r'g_hash_table\b', # GLib hash table function prefix + r'\bGTree\b', # GLib balanced tree + # CPython C API + r'\bPySet\b', # CPython set C API + r'\bPyDict\b', # CPython dict C API + # Dart / Kotlin / Scala / Swift + r'\.toSet\s*\(\s*\)', # .toSet() — Dart/Kotlin/Scala/Swift + r'mutableSetOf\s*\(', # Kotlin mutableSetOf + r'setOf\s*\(', # Kotlin setOf + r'NSMutableSet\b', # Swift/ObjC NSMutableSet + r'NSSet\b', # Swift/ObjC NSSet + # Security / credential redaction (MOAD-0004 fixes) + r'\[REDACTED\]', # credential value replaced with [REDACTED] + r'REDACT|redact', # redact function/variable name + # General + r'computeIfAbsent\b', # Java ConcurrentHashMap + r'getOrDefault\b', # Java Map.getOrDefault + r'putIfAbsent\b', # Java Map.putIfAbsent +] + +# Known UNDF header pattern at top of patch +UNDF_HEADER_RE = re.compile(r'#\s*UNDF:\s*(UNDF-\d{4}-\d{9,})', re.IGNORECASE) + + +# ── Status codes ────────────────────────────────────────────────────────────── + +PASS = "PASS" # patch present + well-formed + fix signature found +WARN = "WARN" # patch present but missing UNDF header or weak fix sig +FAIL = "FAIL" # patch has no defective/fixed lines or is malformed +PENDING = "PENDING" # no defect directory (source not yet cloned) +NO_PATCH = "NO_PATCH" # dir exists but no patch/ subdirectory found + + +# ── Core verification ───────────────────────────────────────────────────────── + +def find_patch_files(proj_dir: str, slug: str = "") -> list: + """ + Return .patch files in defects/{proj_dir}/patch/ that belong to this slug. + + When a project directory contains patches for multiple UNDF entries + (e.g. activemq-0001, activemq-0002), filter to only those whose filename + contains the slug's entry suffix (e.g. "0001", "0002"). This prevents + cross-contamination where one entry's patches pollute another's verdict. + + Returns [] (NO_PATCH) when slug is given but no suffix-matched file exists — + indicating this entry's patch file has not yet been written. Does NOT fall + back to all patches so that incomplete multi-entry directories report NO_PATCH + rather than inheriting an unrelated entry's stub or completed patch. + """ + patch_dir = DEFECTS_DIR / proj_dir / "patch" + if not patch_dir.is_dir(): + return [] + + all_patches = [p for p in patch_dir.iterdir() if p.suffix == ".patch"] + if not all_patches: + return [] + + if slug: + # Entry suffix = last "-"-delimited segment of the slug (e.g. "0001") + entry_suffix = slug.rsplit("-", 1)[-1] + # Filter: patch filename must contain the suffix as a word-boundary token + # e.g. "activemq-0001-queue.patch" matches suffix "0001" + # e.g. "linux-0001-0002-0003-hashstruct.patch" matches suffix "0001" + matched = [p for p in all_patches if entry_suffix in p.stem] + return sorted(matched) # empty = NO_PATCH for this entry + + return sorted(all_patches) + + +def verify_patch(patch_path: Path, expected_undf_id: str) -> tuple: + """ + Verify one .patch file. + + Returns (status, details_list) where status is PASS/WARN/FAIL and + details_list is a list of human-readable notes. + """ + try: + content = patch_path.read_text(errors="replace") + except OSError as e: + return FAIL, [f"Cannot read patch: {e}"] + + details = [] + warnings = [] + + # 1. UNDF header check + header_match = UNDF_HEADER_RE.search(content) + if header_match: + found_id = header_match.group(1) + if found_id != expected_undf_id: + warnings.append(f"Header UNDF ID {found_id} != registry {expected_undf_id}") + else: + warnings.append(f"Missing '# UNDF: {expected_undf_id}' header comment") + + # 2. Extract diff lines + removed_lines = [] + added_lines = [] + for line in content.splitlines(): + if line.startswith("---") or line.startswith("+++"): + continue + if line.startswith("-"): + removed_lines.append(line[1:]) + elif line.startswith("+"): + added_lines.append(line[1:]) + + if not added_lines: + return FAIL, ["No added lines (+) found in patch — empty or malformed diff"] + + # Additive patches (guard insertion without removing old code) are valid. + # Treat missing removed lines as WARN, not FAIL. + additive = not removed_lines + if additive: + warnings.append("No removed lines (-) — additive/guard-insertion patch (no replace)") + + removed_text = "\n".join(removed_lines) + added_text = "\n".join(added_lines) + + # 3. Defective pattern in removed lines (skip check for additive patches) + defective_found = additive or any( + re.search(sig, removed_text, re.IGNORECASE) + for sig in DEFECTIVE_SIGS + ) + + # 4. Fix pattern in added lines + fix_found = any( + re.search(sig, added_text, re.IGNORECASE) + for sig in FIX_SIGS + ) + + if not additive and not defective_found: + warnings.append("No known defective pattern found in removed lines (may be correct for this project)") + if not fix_found: + warnings.append("No known fix signature found in added lines (may need DEFECTIVE_SIGS update)") + + # Determine overall status + if warnings: + status = WARN + details = warnings + else: + removed_label = f"-{len(removed_lines)} lines, " if removed_lines else "" + details = [f"+{len(added_lines)} lines, {removed_label}fix signature confirmed"] + status = PASS + + return status, details + + +def verify_entry(slug: str, undf_id: str) -> tuple: + """ + Verify one UNDF registry entry. + + Returns (status, proj_dir, patch_path_or_None, details_list). + """ + # Derive project directory from slug + proj_dir = slug.rsplit("-", 1)[0] + proj_path = DEFECTS_DIR / proj_dir + + if not proj_path.is_dir(): + return PENDING, proj_dir, None, [f"Defect directory missing: defects/{proj_dir}/ (source not cloned)"] + + patches = find_patch_files(proj_dir, slug) + if not patches: + return NO_PATCH, proj_dir, None, [f"defects/{proj_dir}/patch/ not found or empty"] + + # Verify all patch files for this entry; worst status wins + all_details = [] + worst_status = PASS + status_order = {PASS: 0, WARN: 1, NO_PATCH: 2, FAIL: 3, PENDING: 4} + + for patch_path in sorted(patches): + st, details = verify_patch(patch_path, undf_id) + if status_order.get(st, 0) > status_order.get(worst_status, 0): + worst_status = st + all_details.extend([f"[{patch_path.name}] {d}" for d in details]) + + return worst_status, proj_dir, patches[0], all_details + + +# ── Main ────────────────────────────────────────────────────────────────────── + +def main(): + parser = argparse.ArgumentParser(description=__doc__.strip().split("\n")[0]) + parser.add_argument("--verbose", action="store_true", help="Print per-entry detail") + parser.add_argument("--report", action="store_true", help="Write SCAN-VERIFY-REPORT.md") + parser.add_argument("--fail-on-warn", action="store_true", help="Treat WARN as failure") + parser.add_argument("--fail-on-pending", action="store_true", help="Treat PENDING-SOURCE as failure") + args = parser.parse_args() + + if not REGISTRY.exists(): + print(f"ERROR: Registry not found at {REGISTRY}", file=sys.stderr) + sys.exit(2) + + with REGISTRY.open() as f: + registry = json.load(f) + + counts = defaultdict(int) + entries_by_status = defaultdict(list) + + print(f"Verifying {len(registry)} UNDF entries against {DEFECTS_DIR.name}/...") + print() + + for slug, undf_id in sorted(registry.items()): + status, proj_dir, patch_path, details = verify_entry(slug, undf_id) + counts[status] += 1 + entries_by_status[status].append((slug, undf_id, proj_dir, details)) + + if args.verbose or status in (FAIL, WARN): + sym = {"PASS": "✓", "WARN": "⚠", "FAIL": "✗", "PENDING": "○", "NO_PATCH": "?"}.get(status, "?") + print(f" {sym} {status:8s} {undf_id} {slug}") + if status != PASS or args.verbose: + for d in details: + print(f" {d}") + + # Summary + print() + print("=" * 60) + print(f"SCAN VERIFY SUMMARY — {len(registry)} total UNDF entries") + print("=" * 60) + print(f" {PASS:10s}: {counts[PASS]:4d} (patch present, fix signature confirmed)") + print(f" {WARN:10s}: {counts[WARN]:4d} (patch present, header or sig needs review)") + print(f" {FAIL:10s}: {counts[FAIL]:4d} (patch malformed or missing diff lines)") + print(f" {NO_PATCH:10s}: {counts[NO_PATCH]:4d} (dir exists, no patch file found)") + print(f" {PENDING:10s}: {counts[PENDING]:4d} (defect dir missing — source not cloned)") + print() + + covered = counts[PASS] + counts[WARN] + uncoverable = counts[PENDING] + needs_work = counts[FAIL] + counts[NO_PATCH] + total = len(registry) + pct = 100 * covered / (total - uncoverable) if total > uncoverable else 100 + + print(f" Coverage: {covered}/{total - uncoverable} ({pct:.1f}%) of clonable entries") + print(f" Pending source: {uncoverable} entries (source repos not yet cloned)") + print() + + # Write report + if args.report: + report_path = REPO_ROOT / "tests" / "SCAN-VERIFY-REPORT.md" + write_report(report_path, registry, entries_by_status, counts, total, covered, uncoverable, pct) + print(f"Report written to {report_path}") + + # Exit code + fail = counts[FAIL] > 0 or counts[NO_PATCH] > 0 + if args.fail_on_warn: + fail = fail or counts[WARN] > 0 + if args.fail_on_pending: + fail = fail or counts[PENDING] > 0 + + if fail: + print("RESULT: FAIL — patches need attention (see above)") + sys.exit(1) + else: + print("RESULT: PASS — all clonable entries verified") + sys.exit(0) + + +def write_report(path: Path, registry: dict, entries_by_status: dict, + counts: dict, total: int, covered: int, uncoverable: int, pct: float): + lines = [ + "# SCAN-VERIFY-REPORT", + "", + f"**{total} UNDF entries** in registry. " + f"**{covered}** verified ({pct:.1f}% of clonable). " + f"**{uncoverable}** pending source clone.", + "", + f"| Status | Count | Meaning |", + f"|--------|-------|---------|", + f"| PASS | {counts[PASS]} | Patch present, fix signature confirmed |", + f"| WARN | {counts[WARN]} | Patch present, header or signature needs review |", + f"| FAIL | {counts[FAIL]} | Patch malformed or missing diff lines |", + f"| NO_PATCH | {counts[NO_PATCH]} | Directory exists, no patch/ file found |", + f"| PENDING | {counts[PENDING]} | Source not cloned, directory missing |", + "", + ] + + for status in (FAIL, NO_PATCH, WARN): + if entries_by_status[status]: + lines.append(f"## {status} entries") + lines.append("") + for slug, undf_id, proj_dir, details in entries_by_status[status]: + lines.append(f"- **{undf_id}** `{slug}` (`defects/{proj_dir}/`)") + for d in details: + lines.append(f" - {d}") + lines.append("") + + if entries_by_status[PENDING]: + lines.append("## PENDING-SOURCE entries (source repos not cloned)") + lines.append("") + for slug, undf_id, proj_dir, details in entries_by_status[PENDING]: + lines.append(f"- **{undf_id}** `{slug}`") + lines.append("") + + path.write_text("\n".join(lines)) + + +if __name__ == "__main__": + main()