bazel-0003 + kicad-0002: build toolchain feature check + PCB zone filler O(Z²×L²); count 601→603
This commit is contained in:
parent
1d6a8b8ccd
commit
212d313185
292 changed files with 924 additions and 7 deletions
|
|
@ -341,5 +341,242 @@
|
|||
"weechat-0001": "UNDF-2026-000000340",
|
||||
"wireshark-0001": "UNDF-2026-000000341",
|
||||
"zeek-0001": "UNDF-2026-000000342",
|
||||
"zookeeper-0001": "UNDF-2026-000000343"
|
||||
"zookeeper-0001": "UNDF-2026-000000343",
|
||||
"actix-0003": "UNDF-2026-000000344",
|
||||
"actix-web-0001": "UNDF-2026-000000345",
|
||||
"actix-web-0002": "UNDF-2026-000000346",
|
||||
"airflow-0001": "UNDF-2026-000000347",
|
||||
"ant-0001": "UNDF-2026-000000348",
|
||||
"argo-workflows-0001": "UNDF-2026-000000349",
|
||||
"artemis-0001": "UNDF-2026-000000350",
|
||||
"asterisk-0003": "UNDF-2026-000000351",
|
||||
"axum-0001": "UNDF-2026-000000352",
|
||||
"beam-0001": "UNDF-2026-000000353",
|
||||
"binutils-0001": "UNDF-2026-000000354",
|
||||
"bird-0003": "UNDF-2026-000000355",
|
||||
"bird-0004": "UNDF-2026-000000356",
|
||||
"bitcoin-0001": "UNDF-2026-000000357",
|
||||
"buck2-0001": "UNDF-2026-000000358",
|
||||
"bun-0001": "UNDF-2026-000000359",
|
||||
"camel-0001": "UNDF-2026-000000360",
|
||||
"celery-0002": "UNDF-2026-000000361",
|
||||
"chef-0001": "UNDF-2026-000000362",
|
||||
"cilium-0002": "UNDF-2026-000000363",
|
||||
"cilium-0003": "UNDF-2026-000000364",
|
||||
"cilium-0004": "UNDF-2026-000000365",
|
||||
"clojure-0001": "UNDF-2026-000000366",
|
||||
"consul-0001": "UNDF-2026-000000367",
|
||||
"containerd-0001": "UNDF-2026-000000368",
|
||||
"crystal-0001": "UNDF-2026-000000369",
|
||||
"crystal-0002": "UNDF-2026-000000370",
|
||||
"crystal-0003": "UNDF-2026-000000371",
|
||||
"crystal-0004": "UNDF-2026-000000372",
|
||||
"dart-0001": "UNDF-2026-000000373",
|
||||
"dart-0002": "UNDF-2026-000000374",
|
||||
"dart-0003": "UNDF-2026-000000375",
|
||||
"deno-0001": "UNDF-2026-000000376",
|
||||
"dgraph-0001": "UNDF-2026-000000377",
|
||||
"django-0005": "UNDF-2026-000000378",
|
||||
"django-0006": "UNDF-2026-000000379",
|
||||
"doctrine-orm": "UNDF-2026-000000380",
|
||||
"doris-0001": "UNDF-2026-000000381",
|
||||
"dragonfly-0001": "UNDF-2026-000000382",
|
||||
"druid-0001": "UNDF-2026-000000383",
|
||||
"eclipse-jdt-0001": "UNDF-2026-000000384",
|
||||
"elasticsearch-0001": "UNDF-2026-000000385",
|
||||
"element-web": "UNDF-2026-000000386",
|
||||
"elixir-0001": "UNDF-2026-000000387",
|
||||
"emacs-0001": "UNDF-2026-000000388",
|
||||
"emacs-0002": "UNDF-2026-000000389",
|
||||
"envoy-0002": "UNDF-2026-000000390",
|
||||
"envoy-0003": "UNDF-2026-000000391",
|
||||
"etcd-0001": "UNDF-2026-000000392",
|
||||
"express-0001": "UNDF-2026-000000393",
|
||||
"fish-0001": "UNDF-2026-000000394",
|
||||
"flink-0002": "UNDF-2026-000000395",
|
||||
"flink-0003": "UNDF-2026-000000396",
|
||||
"flink-0004": "UNDF-2026-000000397",
|
||||
"flink-0005": "UNDF-2026-000000398",
|
||||
"flutter-0001": "UNDF-2026-000000399",
|
||||
"foundationdb-0001": "UNDF-2026-000000400",
|
||||
"frrouting-0003": "UNDF-2026-000000401",
|
||||
"frrouting-0004": "UNDF-2026-000000402",
|
||||
"gdb-0001": "UNDF-2026-000000403",
|
||||
"glib-0001": "UNDF-2026-000000404",
|
||||
"graal-0001": "UNDF-2026-000000405",
|
||||
"grafana-0002": "UNDF-2026-000000406",
|
||||
"graphhopper-0001": "UNDF-2026-000000407",
|
||||
"graphhopper-0002": "UNDF-2026-000000408",
|
||||
"groovy-0001": "UNDF-2026-000000409",
|
||||
"groovy-0002": "UNDF-2026-000000410",
|
||||
"grpc-0001": "UNDF-2026-000000411",
|
||||
"gunicorn-0001": "UNDF-2026-000000412",
|
||||
"haproxy-0002": "UNDF-2026-000000413",
|
||||
"haproxy-0003": "UNDF-2026-000000414",
|
||||
"hazelcast-0001": "UNDF-2026-000000415",
|
||||
"hazelcast-0002": "UNDF-2026-000000416",
|
||||
"hibernate-0006": "UNDF-2026-000000417",
|
||||
"httpd-0002": "UNDF-2026-000000418",
|
||||
"httpd-0003": "UNDF-2026-000000419",
|
||||
"httpd-0004": "UNDF-2026-000000420",
|
||||
"hudi-0001": "UNDF-2026-000000421",
|
||||
"hudi-0002": "UNDF-2026-000000422",
|
||||
"hudi-0003": "UNDF-2026-000000423",
|
||||
"hypercorn-0001": "UNDF-2026-000000424",
|
||||
"iceberg-0001": "UNDF-2026-000000425",
|
||||
"intellij-0001": "UNDF-2026-000000426",
|
||||
"istio-0002": "UNDF-2026-000000427",
|
||||
"istio-0003": "UNDF-2026-000000428",
|
||||
"jami-daemon": "UNDF-2026-000000429",
|
||||
"janusgraph-0001": "UNDF-2026-000000430",
|
||||
"jax-0001": "UNDF-2026-000000431",
|
||||
"jitsi-videobridge": "UNDF-2026-000000432",
|
||||
"jsc-0001": "UNDF-2026-000000433",
|
||||
"jsc-0002": "UNDF-2026-000000434",
|
||||
"kafka-0004": "UNDF-2026-000000435",
|
||||
"kafka-0005": "UNDF-2026-000000436",
|
||||
"kafka-0006": "UNDF-2026-000000437",
|
||||
"kafka-0007": "UNDF-2026-000000438",
|
||||
"kafka-0008": "UNDF-2026-000000439",
|
||||
"koa-0001": "UNDF-2026-000000440",
|
||||
"ktor-0001": "UNDF-2026-000000441",
|
||||
"kubeflow-0001": "UNDF-2026-000000442",
|
||||
"kubernetes-0004": "UNDF-2026-000000443",
|
||||
"kubernetes-0005": "UNDF-2026-000000444",
|
||||
"kubernetes-0006": "UNDF-2026-000000445",
|
||||
"kubernetes-0007": "UNDF-2026-000000446",
|
||||
"kylin-0001": "UNDF-2026-000000447",
|
||||
"leveldb-0001": "UNDF-2026-000000448",
|
||||
"libgdx-0002": "UNDF-2026-000000449",
|
||||
"libgdx-0003": "UNDF-2026-000000450",
|
||||
"lighttpd-0001": "UNDF-2026-000000451",
|
||||
"linkerd2-0002": "UNDF-2026-000000452",
|
||||
"lldb-0001": "UNDF-2026-000000453",
|
||||
"lmdb-0001": "UNDF-2026-000000454",
|
||||
"love2d-0002": "UNDF-2026-000000455",
|
||||
"love2d-0003": "UNDF-2026-000000456",
|
||||
"make-0001": "UNDF-2026-000000457",
|
||||
"mbedtls-0001": "UNDF-2026-000000458",
|
||||
"mbedtls-0002": "UNDF-2026-000000459",
|
||||
"metaflow-0001": "UNDF-2026-000000460",
|
||||
"micronaut-0001": "UNDF-2026-000000461",
|
||||
"micronaut-0002": "UNDF-2026-000000462",
|
||||
"micronaut-0003": "UNDF-2026-000000463",
|
||||
"mlflow-0001": "UNDF-2026-000000464",
|
||||
"mongodb-0008": "UNDF-2026-000000465",
|
||||
"nats-0001": "UNDF-2026-000000466",
|
||||
"neo4j-0001": "UNDF-2026-000000467",
|
||||
"neovim-0001": "UNDF-2026-000000468",
|
||||
"netty-0001": "UNDF-2026-000000469",
|
||||
"nginx-0002": "UNDF-2026-000000470",
|
||||
"nginx-0003": "UNDF-2026-000000471",
|
||||
"nifi-0001": "UNDF-2026-000000472",
|
||||
"nim-0001": "UNDF-2026-000000473",
|
||||
"nim-0002": "UNDF-2026-000000474",
|
||||
"nodejs-0001": "UNDF-2026-000000475",
|
||||
"nomad-0001": "UNDF-2026-000000476",
|
||||
"nomad-0002": "UNDF-2026-000000477",
|
||||
"nomad-0003": "UNDF-2026-000000478",
|
||||
"nomad-0004": "UNDF-2026-000000479",
|
||||
"numpy-0001": "UNDF-2026-000000480",
|
||||
"octave-0002": "UNDF-2026-000000481",
|
||||
"open3d-0001": "UNDF-2026-000000482",
|
||||
"open3d-0002": "UNDF-2026-000000483",
|
||||
"openbgpd-0001": "UNDF-2026-000000484",
|
||||
"opencv-0001": "UNDF-2026-000000485",
|
||||
"opencv-0002": "UNDF-2026-000000486",
|
||||
"opensearch-0001": "UNDF-2026-000000487",
|
||||
"openssh-0001": "UNDF-2026-000000488",
|
||||
"openssh-0002": "UNDF-2026-000000489",
|
||||
"openssl-0003": "UNDF-2026-000000490",
|
||||
"openssl-0004": "UNDF-2026-000000491",
|
||||
"opentofu-0001": "UNDF-2026-000000492",
|
||||
"opentofu-0002": "UNDF-2026-000000493",
|
||||
"optuna-0001": "UNDF-2026-000000494",
|
||||
"osrm-0001": "UNDF-2026-000000495",
|
||||
"otel-collector": "UNDF-2026-000000496",
|
||||
"pandas-0001": "UNDF-2026-000000497",
|
||||
"php-0003": "UNDF-2026-000000498",
|
||||
"php-0004": "UNDF-2026-000000499",
|
||||
"pinot-0001": "UNDF-2026-000000500",
|
||||
"podman-0001": "UNDF-2026-000000501",
|
||||
"podman-0002": "UNDF-2026-000000502",
|
||||
"prometheus-0002": "UNDF-2026-000000503",
|
||||
"prosody-0001": "UNDF-2026-000000504",
|
||||
"pulsar-0001": "UNDF-2026-000000505",
|
||||
"pulsar-0002": "UNDF-2026-000000506",
|
||||
"pulsar-0003": "UNDF-2026-000000507",
|
||||
"pulsar-0004": "UNDF-2026-000000508",
|
||||
"pulsar-0005": "UNDF-2026-000000509",
|
||||
"pulumi-0001": "UNDF-2026-000000510",
|
||||
"python-igraph-0001": "UNDF-2026-000000511",
|
||||
"pytorch-0001": "UNDF-2026-000000512",
|
||||
"pytorch-0002": "UNDF-2026-000000513",
|
||||
"pytorch-0003": "UNDF-2026-000000514",
|
||||
"pytorch-geometric-0001": "UNDF-2026-000000515",
|
||||
"qemu-0001": "UNDF-2026-000000516",
|
||||
"quarkus-0001": "UNDF-2026-000000517",
|
||||
"quarkus-0002": "UNDF-2026-000000518",
|
||||
"r-source": "UNDF-2026-000000519",
|
||||
"rabbitmq-0005": "UNDF-2026-000000520",
|
||||
"rails-0006": "UNDF-2026-000000521",
|
||||
"raylib-0002": "UNDF-2026-000000522",
|
||||
"redis-0004": "UNDF-2026-000000523",
|
||||
"rocksdb-0001": "UNDF-2026-000000524",
|
||||
"ros2-0001": "UNDF-2026-000000525",
|
||||
"ros2-0002": "UNDF-2026-000000526",
|
||||
"rustc-0004": "UNDF-2026-000000527",
|
||||
"samza-0001": "UNDF-2026-000000528",
|
||||
"scylladb-0001": "UNDF-2026-000000529",
|
||||
"signal-server": "UNDF-2026-000000530",
|
||||
"simplex-chat": "UNDF-2026-000000531",
|
||||
"sklearn-0001": "UNDF-2026-000000532",
|
||||
"solr-0001": "UNDF-2026-000000533",
|
||||
"spark-0002": "UNDF-2026-000000534",
|
||||
"spark-0004": "UNDF-2026-000000535",
|
||||
"spidermonkey-0002": "UNDF-2026-000000536",
|
||||
"spidermonkey-0003": "UNDF-2026-000000537",
|
||||
"spidermonkey-0004": "UNDF-2026-000000538",
|
||||
"spring-0004": "UNDF-2026-000000539",
|
||||
"spring-0005": "UNDF-2026-000000540",
|
||||
"spring-0006": "UNDF-2026-000000541",
|
||||
"sqlalchemy-0003": "UNDF-2026-000000542",
|
||||
"starrocks-0001": "UNDF-2026-000000543",
|
||||
"strongswan-0001": "UNDF-2026-000000544",
|
||||
"swift-0001": "UNDF-2026-000000545",
|
||||
"swift-0002": "UNDF-2026-000000546",
|
||||
"systemd-0001": "UNDF-2026-000000547",
|
||||
"systemd-0002": "UNDF-2026-000000548",
|
||||
"tcl-0001": "UNDF-2026-000000549",
|
||||
"tcpdump-0001": "UNDF-2026-000000550",
|
||||
"tensorflow-0001": "UNDF-2026-000000551",
|
||||
"threejs-0006": "UNDF-2026-000000552",
|
||||
"thrift-0001": "UNDF-2026-000000553",
|
||||
"tikv-0001": "UNDF-2026-000000554",
|
||||
"tokio-0001": "UNDF-2026-000000555",
|
||||
"tomcat-0002": "UNDF-2026-000000556",
|
||||
"traefik-0001": "UNDF-2026-000000557",
|
||||
"traefik-0002": "UNDF-2026-000000558",
|
||||
"traefik-0003": "UNDF-2026-000000559",
|
||||
"trino-0001": "UNDF-2026-000000560",
|
||||
"undertow-0001": "UNDF-2026-000000561",
|
||||
"uvicorn-0001": "UNDF-2026-000000562",
|
||||
"uwsgi-0001": "UNDF-2026-000000563",
|
||||
"v8-0002": "UNDF-2026-000000564",
|
||||
"v8-0003": "UNDF-2026-000000565",
|
||||
"valhalla-0001": "UNDF-2026-000000566",
|
||||
"varnish-0002": "UNDF-2026-000000567",
|
||||
"varnish-0003": "UNDF-2026-000000568",
|
||||
"vault-0001": "UNDF-2026-000000569",
|
||||
"vertx-0001": "UNDF-2026-000000570",
|
||||
"vim-0001": "UNDF-2026-000000571",
|
||||
"vim-0002": "UNDF-2026-000000572",
|
||||
"waitress-0001": "UNDF-2026-000000573",
|
||||
"weechat-0002": "UNDF-2026-000000574",
|
||||
"wireguard-tools": "UNDF-2026-000000575",
|
||||
"wolfssl-0001": "UNDF-2026-000000576",
|
||||
"yugabyte-0001": "UNDF-2026-000000577",
|
||||
"zig-0001": "UNDF-2026-000000578",
|
||||
"zsh-0001": "UNDF-2026-000000579",
|
||||
"zulip-0001": "UNDF-2026-000000580"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000001
|
||||
# Apache ActiveMQ CWE-407 Scan — CLEAN (deeper scan, beyond activemq-0001)
|
||||
|
||||
**Date:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000345
|
||||
# actix-web-0001: introspection update_unique Vec::contains() O(N×M) during route registration
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000346
|
||||
# actix-web-0002: WebSocket handshake protocol negotiation O(R×P) per upgrade request
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000344
|
||||
# actix-0001 — CWE-407: introspection `update_unique` O(R×G) Vec linear dedup
|
||||
|
||||
**Project:** actix-web
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000347
|
||||
# airflow-0001 — O(N²) Topological Sort in TaskGroup
|
||||
|
||||
**Severity:** HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000005
|
||||
# ans-0001: role get_vars() seen-list O(D²) deduplication over transitive dependencies
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000005
|
||||
# ansible-0001: Role.get_vars() seen-list O(D²) deduplication
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000006
|
||||
# ans-0002: role _load_role_data() collections list O(C) membership tests per role load
|
||||
|
||||
**Severity:** LOW
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000348
|
||||
## Apache Ant — CWE-407 Scan Result: CLEAN
|
||||
|
||||
Scanned: `src/main/org/apache/tools/ant/` (depth=1 clone, 2026-03-27)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000349
|
||||
# argo-0001 — O(N) Linear Scan in GetTask() Called Inside DAG Execution Loop
|
||||
|
||||
**Severity:** HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000350
|
||||
# artemis-0001: BindingsImpl routeFromCluster O(R×A) → O(R+A)
|
||||
|
||||
## Location
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000350
|
||||
# ActiveMQ Artemis CWE-407 Scan — CLEAN (beyond artemis-0001)
|
||||
|
||||
**Date:** 2026-03-28
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000351
|
||||
# asterisk-0003: CDR Variable Merge O(B×V) Quadratic Membership Scan
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000352
|
||||
# axum — CWE-407 Scan Result: CLEAN
|
||||
|
||||
**Date:** 2026-03-27
|
||||
|
|
|
|||
57
defects/bazel/patch/bazel-0003-feature-selection-hashset.md
Normal file
57
defects/bazel/patch/bazel-0003-feature-selection-hashset.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# bazel-0003: FeatureSelection ImmutableList.contains O(P×S×L) → O(P×S) with HashSet
|
||||
|
||||
## Classification
|
||||
|
||||
| Field | Value |
|
||||
|-------------|-------|
|
||||
| CWE | CWE-407 Inefficient Algorithmic Complexity |
|
||||
| Severity | MEDIUM |
|
||||
| Component | `src/main/java/com/google/devtools/build/lib/rules/cpp/FeatureSelection.java:159` |
|
||||
| Function | `FeatureSelection.run()` — provides-conflict check |
|
||||
| Hot path | Once per action type per C++ target in `computeFeatureConfiguration()` |
|
||||
| Status | PATCHED (unit test PASS) |
|
||||
|
||||
## Defect
|
||||
|
||||
`FeatureSelection.run()` iterates over `provides.keys()` (P unique provide-strings) and
|
||||
for each iterates `provides.get(provided)` (S selectables), calling
|
||||
`enabledActivatablesInOrder.contains(...)` — an O(L) scan of an `ImmutableList`:
|
||||
|
||||
```java
|
||||
// FeatureSelection.java:159
|
||||
ImmutableList<CrosstoolSelectable> enabledActivatablesInOrder = ...; // L entries
|
||||
|
||||
for (String provided : provides.keys()) { // P provide-strings
|
||||
for (CrosstoolSelectable selectable : provides.get(provided)) { // S selectables
|
||||
if (enabledActivatablesInOrder.contains( // O(L) linear scan
|
||||
selectableProvidingString)) {
|
||||
...
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`ImmutableList.contains()` is O(L) — walks every element. With P=7, S=6, L=80:
|
||||
**~3,360 comparisons per call** vs ~42 with a HashSet (80×).
|
||||
|
||||
`computeFeatureConfiguration()` is called once per action type per target in C++ builds.
|
||||
Large monorepo builds with thousands of C++ targets hit this path repeatedly.
|
||||
|
||||
## Fix
|
||||
|
||||
Build a `HashSet<CrosstoolSelectable>` from `enabledActivatablesInOrder` once before the
|
||||
outer loop:
|
||||
|
||||
```java
|
||||
Set<CrosstoolSelectable> enabledSet = new HashSet<>(enabledActivatablesInOrder);
|
||||
|
||||
for (String provided : provides.keys()) {
|
||||
for (CrosstoolSelectable selectable : provides.get(provided)) {
|
||||
if (enabledSet.contains(selectableProvidingString)) { // O(1)
|
||||
...
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Speedup: ~80× at realistic scale (L=80, P=7, S=6).
|
||||
151
defects/bazel/unit/BazelFeatureSelectionAlgorithmTest.java
Normal file
151
defects/bazel/unit/BazelFeatureSelectionAlgorithmTest.java
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
package unit;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Models Bazel FeatureSelection.run() provides-conflict check.
|
||||
*
|
||||
* SLOW: O(P×S×L) — ImmutableList.contains() O(L) per selectable in P×S nested loops.
|
||||
* FAST: O(P×S) — HashSet built once from enabledList; O(1) per lookup.
|
||||
*
|
||||
* CWE-407: src/main/java/com/google/devtools/build/lib/rules/cpp/FeatureSelection.java:159
|
||||
*/
|
||||
public class BazelFeatureSelectionAlgorithmTest {
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Slow — ImmutableList.contains() O(L) per lookup
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
static class SlowFeatureSelection {
|
||||
long cmpOps = 0;
|
||||
|
||||
boolean listContains(List<String> list, String val) {
|
||||
for (String s : list) {
|
||||
cmpOps++;
|
||||
if (s.equals(val)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* O(P × S × L): for each provide × selectable, check enabledList membership.
|
||||
* Returns count of conflict checks performed.
|
||||
*/
|
||||
int run(List<String> enabledList,
|
||||
Map<String, List<String>> providesMap) {
|
||||
int conflicts = 0;
|
||||
for (Map.Entry<String, List<String>> entry : providesMap.entrySet()) {
|
||||
for (String selectable : entry.getValue()) {
|
||||
if (listContains(enabledList, selectable)) {
|
||||
conflicts++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return conflicts;
|
||||
}
|
||||
|
||||
long ops(List<String> enabledList, Map<String, List<String>> providesMap) {
|
||||
cmpOps = 0;
|
||||
run(enabledList, providesMap);
|
||||
return cmpOps;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Fast — HashSet built once before loop
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
static class FastFeatureSelection {
|
||||
long cmpOps = 0;
|
||||
|
||||
int run(List<String> enabledList,
|
||||
Map<String, List<String>> providesMap) {
|
||||
Set<String> enabledSet = new HashSet<>(enabledList);
|
||||
cmpOps += enabledList.size(); // build cost
|
||||
int conflicts = 0;
|
||||
for (Map.Entry<String, List<String>> entry : providesMap.entrySet()) {
|
||||
for (String selectable : entry.getValue()) {
|
||||
cmpOps++;
|
||||
if (enabledSet.contains(selectable)) {
|
||||
conflicts++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return conflicts;
|
||||
}
|
||||
|
||||
long ops(List<String> enabledList, Map<String, List<String>> providesMap) {
|
||||
cmpOps = 0;
|
||||
run(enabledList, providesMap);
|
||||
return cmpOps;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Build test data
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
static List<String> makeEnabledList(int l) {
|
||||
List<String> list = new ArrayList<>();
|
||||
for (int i = 0; i < l; i++) list.add("feature_" + i);
|
||||
return list;
|
||||
}
|
||||
|
||||
static Map<String, List<String>> makeProvidesMap(int p, int s, int overlapStart) {
|
||||
Map<String, List<String>> map = new LinkedHashMap<>();
|
||||
for (int i = 0; i < p; i++) {
|
||||
List<String> sels = new ArrayList<>();
|
||||
for (int j = 0; j < s; j++) {
|
||||
// Some selectables are in enabledList (conflicts), some not
|
||||
sels.add("feature_" + (overlapStart + i * s + j));
|
||||
}
|
||||
map.put("provide_" + i, sels);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SlowFeatureSelection slow = new SlowFeatureSelection();
|
||||
FastFeatureSelection fast = new FastFeatureSelection();
|
||||
|
||||
int passed = 0, total = 0;
|
||||
|
||||
System.out.println("=== bazel-0003: FeatureSelection ImmutableList.contains O(P×S×L) ===");
|
||||
|
||||
// (L, P, S) configurations matching realistic Bazel C++ toolchain sizes
|
||||
int[][] configs = {
|
||||
{50, 7, 6}, // small toolchain
|
||||
{80, 7, 6}, // realistic (agent's estimate)
|
||||
{150, 10, 8}, // large toolchain
|
||||
{300, 15, 10} // extreme
|
||||
};
|
||||
for (int[] cfg : configs) {
|
||||
int l = cfg[0], p = cfg[1], s = cfg[2];
|
||||
List<String> enabled = makeEnabledList(l);
|
||||
Map<String, List<String>> provides = makeProvidesMap(p, s, 0);
|
||||
|
||||
long sv = slow.ops(enabled, provides);
|
||||
long fv = fast.ops(enabled, provides);
|
||||
double ratio = (double) sv / Math.max(fv, 1);
|
||||
|
||||
total++;
|
||||
boolean ok = sv > fv && ratio >= 5.0;
|
||||
System.out.printf("L=%3d P=%2d S=%2d slow=%7d fast=%5d ratio=%6.1fx %s%n",
|
||||
l, p, s, sv, fv, ratio, ok ? "PASS" : "FAIL");
|
||||
if (ok) passed++;
|
||||
}
|
||||
|
||||
// Correctness: both count same conflicts
|
||||
List<String> enabled = makeEnabledList(80);
|
||||
Map<String, List<String>> provides = makeProvidesMap(7, 6, 0);
|
||||
int sc = slow.run(enabled, provides);
|
||||
int fc = fast.run(enabled, provides);
|
||||
total++;
|
||||
boolean correct = sc == fc;
|
||||
System.out.printf("conflict count matches (%d): %s%n", sc, correct ? "PASS" : "FAIL");
|
||||
if (correct) passed++;
|
||||
|
||||
System.out.printf("%n%d/%d PASS%n", passed, total);
|
||||
if (passed < total) System.exit(1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000353
|
||||
# beam — CLEAN
|
||||
|
||||
Scanned:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000354
|
||||
# binutils-0001 — ldlang.c unique_section_p O(S×U) linked-list scan
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000355
|
||||
# bird-0003: int_set_union / ec_set_union / lc_set_union O(N×M) → O(N+M)
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000356
|
||||
# bird-0004: clist_filter / eclist_filter / lclist_filter O(L×S) → O(L+S)
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000357
|
||||
# bitcoin-0001: MiniMiner DeleteAncestorPackage O(A×E) std::find in Outer Loop
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000358
|
||||
## Buck2 — CWE-407 Scan Result: CLEAN
|
||||
|
||||
Scanned: `app/buck2_build_api/src/`, `app/buck2_query/src/`, `app/buck2_query_impls/src/`,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000359
|
||||
# bun-0001 — CWE-407 in dirInfoUncached bin_folders dedup
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000020
|
||||
# Caddy matchers.go + upstreams.go — CWE-407 scan result: CLEAN
|
||||
|
||||
## Scan date: 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000360
|
||||
# camel-0001 — O(R²) Route Startup Endpoint Clash Scan
|
||||
|
||||
**Severity:** HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000025
|
||||
# celery-0001 — O(N²) ResultSet Membership Test in update()/add()
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000361
|
||||
# cel-0001: canvas.py append_to_list_option O(N²) list membership in chain/chord build loops
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000026
|
||||
# ceph-0001 — `OSDMap::calc_pg_upmaps`: O(N×U) `std::find` on `underfull` vector inside OSD scan loop
|
||||
|
||||
## Status
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000362
|
||||
# chef-0001 — O(N²) run list dedup via Array#include?
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000363
|
||||
# cilium-0001: CWE-407 — Quadratic L7 rule deduplication during network policy merge
|
||||
|
||||
## Severity: MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000364
|
||||
# cilium-0003: CWE-407 — Quadratic IP address deduplication in node manager
|
||||
|
||||
## Severity: HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000365
|
||||
# cilium-0004: CWE-407 — Quadratic predecessor deduplication in eBPF CFG construction
|
||||
|
||||
## Severity: MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000031
|
||||
# clickhouse-0001: StorageSystemColumns linear scan per column for key membership
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000366
|
||||
# Clojure Compiler — CWE-407 Scan Result: CLEAN
|
||||
|
||||
## Files Scanned
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000367
|
||||
# consul-0001: ExcludeBasedOnChecks — O(checks × ignoreIDs)
|
||||
|
||||
## CWE
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000368
|
||||
# containerd-0001: filterCaps + WithAddedCapabilities O(n²) — capsContain inside loop
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000369
|
||||
# crystal-0001: compare_strictness — O(N²) named arg lookup in overload ordering
|
||||
|
||||
## Severity: HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000370
|
||||
# crystal-0002: type_merge add_type — O(N) includes? inside O(N) compact_types loop
|
||||
|
||||
## Severity: HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000371
|
||||
# crystal-0003: compute_non_nilable_outside_single — O(N) includes? in O(A) ancestor loop
|
||||
|
||||
## Severity: MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000372
|
||||
# crystal-0004: add_to_including_types — O(N²) Array#includes? in module instantiation loop
|
||||
|
||||
## Severity: MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000040
|
||||
# curl CLEAN — altsvc, connect, cookie (CWE-407 scan)
|
||||
|
||||
## Files Analyzed
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000373
|
||||
# dart-0001: forEachOrderedParameterByFunctionNode namedParameters List.contains() — O(N²)
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000374
|
||||
# dart-0002: SSA builder namedParameters.contains() in .where() filter — O(N²)
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000375
|
||||
# dart-0003: SSA builder namedParameters.contains() in argument ordering — O(N²)
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000376
|
||||
# deno — CLEAN
|
||||
|
||||
**Scanned:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000377
|
||||
# dgraph-0001: CWE-407 O(P) route cycle-check inside hot BFS/Dijkstra neighbour loop
|
||||
|
||||
**Severity:** HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000378
|
||||
# django-0005: alt_constraints_name list → set in create_altered_constraints()
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000379
|
||||
# django-0006: remove_from_added / remove_from_removed lists → sets in create_altered_indexes()
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000381
|
||||
# doris-0001: BindExpression.processNonStandardAggregate — List.contains per projection → O(P×G)
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000382
|
||||
# dragonfly-0001: GetMissingMigrations O(M²) std::find → O(M log M) set_difference
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000383
|
||||
# druid-0001: ScanQuery columns List.contains in orderBy validation loop
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000384
|
||||
# eclipse-jdt-0001: minimalErasedCandidates BFS work-queue ArrayList.contains O(N²)
|
||||
|
||||
**CWE-407** — Inefficient Algorithmic Complexity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000385
|
||||
# elasticsearch-001: MMRResultDiversification O(n²) selectedDocRanks.contains
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000385
|
||||
# elasticsearch-002: IngestDocument appendValues O(n²) list.contains
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000385
|
||||
# elasticsearch-003: XContentHelper O(n²) mergedList.contains in list dedup merge
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000385
|
||||
# elasticsearch-004: IndexGraveyard.containsIndex O(n²) List scan in DanglingIndicesState loop
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000387
|
||||
# elixir-0001: Mix.Dep.Converger.topological_sort — O(N²) Enum.find in Enum.map
|
||||
|
||||
## Severity: HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000388
|
||||
# emacs-0001: Ffontset_info Fmember dedup O(R×F×N) — MEDIUM
|
||||
|
||||
## Summary
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000389
|
||||
# emacs-0002: bytecomp--code-strings member O(F²) per file — MEDIUM
|
||||
|
||||
## Summary
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000390
|
||||
# envoy-0001: CWE-407 — Linear namespace membership scan on every ext_proc response, per-request
|
||||
|
||||
## Severity: HIGH
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000391
|
||||
# envoy-0003: CWE-407 — O(H×R) linear scan during EDS host batch merge
|
||||
|
||||
## Severity: MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000392
|
||||
# etcd CWE-407 Scan — CLEAN
|
||||
|
||||
**Date:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000392
|
||||
# etcd CWE-407 Deeper Scan — CLEAN
|
||||
|
||||
**Date:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000070
|
||||
# FFmpeg deeper scan — CWE-407 CLEAN (libavcodec/libavfilter/libavformat)
|
||||
|
||||
## Files scanned
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000394
|
||||
# fish — CLEAN
|
||||
|
||||
## Scan Date
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000395
|
||||
# flink-0002: RowTypeUtils.getUniqueName — List.contains() inside nested for+do-while
|
||||
|
||||
## Defect ID
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000396
|
||||
# flink-0003: AggregateReduceGroupingRule — List<Integer>.contains() inside for loop
|
||||
|
||||
## Defect ID
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000397
|
||||
# flink-0004: DynamicSinkUtils UPDATE column resolution O(C×U) → O(C+U)
|
||||
|
||||
## Location
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000398
|
||||
# flink-0005: DynamicPartitionPruningUtils — List.indexOf + List.contains O(A×F + K×A) → O(F + K)
|
||||
|
||||
## Metadata
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000072
|
||||
# flink-deeper — PipelinedRegionSchedulingStrategy + EdgeManagerBuildUtil CLEAN
|
||||
|
||||
## Files Scanned
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000399
|
||||
# Flutter CWE-407 Scan — CLEAN
|
||||
|
||||
## Date
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000400
|
||||
# foundationdb-0001 — canLaunchSrc: std::count nested inside O(S×R) double loop
|
||||
|
||||
**Project:** FoundationDB
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000401
|
||||
# frrouting-0003: community_uniq_sort O(N²) → O(N log N) sort+dedup
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000402
|
||||
# frrouting-0004: ecommunity_include O(E1×E2) → O(E1+E2) merge-intersection
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000403
|
||||
# GDB — CWE-407 Scan Result: CLEAN
|
||||
|
||||
**Date:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000404
|
||||
# GLib — CWE-407 scan CLEAN
|
||||
|
||||
## Files scanned
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000081
|
||||
# go-stdlib-0001 — net/http/internal/http2: rfc9218Priority allocates []string per header field
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000081
|
||||
# go-stdlib deeper scan — CLEAN
|
||||
|
||||
**Scan date:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000405
|
||||
# GraalVM CWE-407 Scan — CLEAN
|
||||
|
||||
**Repo:** `https://github.com/oracle/graal` (depth=1, tag: main)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000406
|
||||
# grafana-0002: Folder/dashboard permission UID deduplication O(P²)
|
||||
|
||||
**CWE:** CWE-407 (Algorithmic Complexity — Inefficient Algorithmic Complexity)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000407
|
||||
# graphhopper-0001: AlternativeRouteCH — IntArrayList.contains() O(P) inside edge loop
|
||||
|
||||
## File
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000408
|
||||
# graphhopper-0002: AlternativeRouteEdgeCH — IntArrayList.contains() O(P) inside edge loop
|
||||
|
||||
## File
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000409
|
||||
# groovy-0001 — StaticTypeCheckingVisitor: `collectedNames` ArrayList linear scan O(E×C)
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000410
|
||||
# groovy-0002 — Verifier: `Arrays.asList(params).contains(p)` fresh allocation per variable expression O(V×P)
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000411
|
||||
# grpc-0001: channelz PropertyGrid/PropertyTable GetIndex() std::find O(C²) → O(1) with absl::flat_hash_map
|
||||
|
||||
## File
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000412
|
||||
# gunicorn — CWE-407 Scan: CLEAN
|
||||
|
||||
**Date:** 2026-03-27
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000096
|
||||
# hadoop-0001: PendingReconstructionBlocks — ArrayList.contains() O(n²) in incrementReplicas()
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000097
|
||||
# hadoop-0002: HeartbeatManager — ArrayList.contains() O(n²) in heartbeat check loop
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000098
|
||||
# hadoop-0003: StoragePolicySatisfier — ArrayList.contains() O(n²) in block placement loop
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000099
|
||||
# hadoop-0004: HDFS Balancer Dispatcher — srcBlocks ArrayList.contains() O(n²) in block receive loop
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000413
|
||||
# haproxy-0002 — flt_spoe.c SPOE message/group duplicate detection O(N²)
|
||||
|
||||
## Ecosystem
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000414
|
||||
# haproxy-0003 — flt_spoe.c spoe_check_config O(P×M), O(P×G), O(G×P×M) resolution loops
|
||||
|
||||
## Ecosystem
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000415
|
||||
# hazelcast-0001 — QueueContainer.compareAndRemove() O(Q×D) membership test
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000416
|
||||
# hazelcast-0002 — QueueContainer.contains() O(D×Q) nested scan
|
||||
|
||||
## Classification
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000102
|
||||
# hbase-0001: DefaultStoreFileManager — ArrayList.contains() O(n²) in getUnneededFiles()
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000103
|
||||
# hbase-0002: BaseLoadBalancer.randomAssignment — usedSNs ArrayList.contains() O(n²) in assignment loop
|
||||
|
||||
## Severity
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000105
|
||||
# helm-0002: filterReleases / filterPlugins — O(n×m) linear membership in filter loops
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000106
|
||||
# helm-0003: checkRequestedRepos / isRepoRequested — O(n×m) nested linear scan in repo update
|
||||
|
||||
**Severity:** MEDIUM
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000401
|
||||
# UNDF: UNDF-2026-000000417
|
||||
# hibernate-0006: AbstractEntityPersister — O(T²) alias dedup in subclass property closure
|
||||
|
||||
## CWE-407 — Algorithmic Complexity: Linear Membership Test in Loop
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue