whitepaper: re-add 10 missing entries + 11 new defects this session, count 578→590; rebuild PDF
This commit is contained in:
parent
e4ee168b1e
commit
2e4f7807d5
401 changed files with 3914 additions and 114 deletions
|
|
@ -1 +1,10 @@
|
|||
eca6ab526da1cbb21b2464b67650c8d9 undefect-cwe407-2026-03-27.pdf
|
||||
33dc45d94dcb2b6cec4f7036497571d7 executive-summary.pdf
|
||||
ba0de5d1546aa2971492f74616f13f47 full-paper.pdf
|
||||
3fda5736a004c621f52701c92a7ca7f5 undefect-cwe407-2026-03-24.pdf
|
||||
f076f22e9e70a94f51884562aad6fdc5 undefect-cwe407-2026-03-25.pdf
|
||||
5da33a4087fdca81f70cce84656afc7f undefect-cwe407-2026-03-26.pdf
|
||||
cc46c7ebb61d23a0c3e33cbe86977fd8 undefect-cwe407-2026-03-27.pdf
|
||||
ff52abf9f47a7e6bb25e4519b1325090 undefect-minecraft-enterprise-java-2026-03-24.pdf
|
||||
c7fe499eb004271b384a31ac01b38852 undefect-minecraft-enterprise-java-2026-03-25.pdf
|
||||
818d29731df88333d29cfdd3eefeb3a2 undefect-minecraft-enterprise-java-2026-03-26.pdf
|
||||
247fe2afd56be7dabda54875bc60d77f undefect-minecraft-enterprise-java-2026-03-27.pdf
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ A single well-crafted implementation serves as the genetic blueprint.
|
|||
4. **Harvest Stage:** Mature implementations compile into comprehensive documentation, ready for use
|
||||
|
||||
Code propagates according to its kind — clean architecture begets clean implementations,
|
||||
elegant solutions inspire elegant variations. The process of generating 578 validated
|
||||
elegant solutions inspire elegant variations. The process of generating 590 validated
|
||||
defect patches across 240 ecosystems in a single research wave demonstrates how truth,
|
||||
properly seeded, multiplies. Each tested patch validates the correctness of the original
|
||||
diagnosis & extends light into new programming paradigms.
|
||||
|
|
@ -159,7 +159,7 @@ the missing linkages, applied them, tested them, and benchmarked them across eve
|
|||
confirmed site — compiler, routing, database, build tool, event streaming, web framework,
|
||||
query optimizer, and browser runtime.
|
||||
|
||||
**578 sites patched. 3 deferred (PostgreSQL -0001/-0005; MongoDB -0005 IndexBounds).
|
||||
**590 sites patched. 3 deferred (PostgreSQL -0001/-0005; MongoDB -0005 IndexBounds).
|
||||
1 fixable-upstream (Erlang OTP). 1 fixable-pending (swipl-0003). 2 not-worth-fixing.
|
||||
3 unpatched (Minecraft, Create mod). No language left behind.
|
||||
|
||||
|
|
@ -249,6 +249,9 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| javac-0002b | OpenJDK javac | `Infer.java:1747` — uncached closure DFS | **PATCHED** |
|
||||
| javac-0004 | OpenJDK javac | `Dependencies.java:197` — `List.contains+add` | **PATCHED** |
|
||||
| javac-0005 | OpenJDK javac | `InferenceContext.java:506` — `List.containsAll()` | **PATCHED** |
|
||||
| javac-0006 | OpenJDK javac | `code/Types.java:3240` — `interfaceCandidates()` `candidates2.contains(s)` O(S²) javac List scan per symbol in membersClosure loop; fix: `LinkedHashSet` shadow (200×) | **PATCHED** |
|
||||
| javac-0007 | OpenJDK javac | `comp/InferenceContext.java:294` — `notifyChange()` recomputes `inferencevars.diff(inferredVars)` O(N×M) inside freeTypeListeners loop (L iterations); fix: hoist `diff()` (160×) | **PATCHED** |
|
||||
| eclipse-jdt-0001 | Eclipse JDT | `compiler/lookup/Scope.java:4273,4295` — `minimalErasedCandidates()` BFS `typesToVisit ArrayList.contains(superType)` O(N²) per `lub()` / ternary / multi-catch inference; fix: `LinkedHashSet` (251×) | **PATCHED** |
|
||||
| ts-0001 | TypeScript | `checker.ts:11503` — `resolutionTargets[]` linear scan | **PATCHED** |
|
||||
| ts-0002 | TypeScript | `checker.ts:5256` — `visitedSymbols` array | **PATCHED** |
|
||||
| ts-0003 | TypeScript | `checker.ts:5763` — `visitedSymbolTables` array | **PATCHED** |
|
||||
|
|
@ -303,6 +306,7 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| hibernate-0003 | Hibernate ORM | `mapping/Index.java` — `ArrayList.contains()` in `addColumn()` dedup; O(C²) | **PATCHED** |
|
||||
| hibernate-0004 | Hibernate ORM | `boot/model/process/spi/InFlightMetadataCollectorImpl.java` — `ArrayList.contains()+add(0,…)` in `buildRecursiveOrderedFkSecondPasses()`; O(D²) inheritance chain | **PATCHED** |
|
||||
| hibernate-0005 | Hibernate ORM | `engine/internal/StatisticalLoggingSessionEventListener.java` — `ArrayList.contains()` in `orderHierarchy()` recursive sort; O(T²) hierarchy | **PATCHED** |
|
||||
| hibernate-0006 | Hibernate ORM | `persister/entity/AbstractEntityPersister.java:665` — subclass property closure `aliases.contains(columnAlias)` O(T²) across hierarchy; fix: `LinkedHashSet` (378×) | **PATCHED** |
|
||||
| efcore-0001 | EF Core | `Metadata/Internal/PropertyExtensions.cs:72` — `List<IProperty>.Contains()` in `FindGenerationProperty()` BFS FK traversal; O(D²) per `SaveChanges()` call (250×) | **PATCHED** |
|
||||
| efcore-0002 | EF Core | `Metadata/IReadOnlyProperty.cs:248` — `List<T>.Contains()` in `AddPrincipals()` recursive traversal; O(P²) principal chain (250×) | **PATCHED** |
|
||||
| sqlalchemy-0001 | SQLAlchemy | `sql/compiler.py:1392` — `_values_bindparam: List[str]` in `_process_numeric()`; `name not in _values_bindparam` O(B) per bind param; O(B²) for large UPDATE/INSERT | **PATCHED** |
|
||||
|
|
@ -367,6 +371,7 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| openvpn-0001 | OpenVPN | `ssl_ncp.c:272,388`; `dco.c:468` — `tls_item_in_cipher_list()` strtok O(n×m) per TLS handshake at 3 call sites; fix: pre-split array (high multiplier) | **PATCHED** |
|
||||
| vlc-0001 | VLC | `src/modules/modules.c` — `module_find()` O(n) linear scan per plugin lookup; O(R×n) at resolution time (96×) | **PATCHED** |
|
||||
| prometheus-0001 | Prometheus | `labels/labels.go` — `Builder.Labels()` `slices.Contains(del)` O(L×D) per label set build; fix: `map[string]struct{}` (101×) | **PATCHED** |
|
||||
| prometheus-0002 | Prometheus | `rules/group.go:1090` — `dependencyMap.dependencies()` iterates all map entries calling `slices.Contains(dependents, r)` O(R×D) per rule → O(R²×D) AnalyseRules; fix: inverted `map[Rule][]Rule` (93×) | **PATCHED** |
|
||||
| otel-collector-0001 | OTel Collector | `pcommon/map.go` — `Map.Get()` O(n) called inside all `Put*` constructors in O(n) build loop; fix: pre-build `map[string]int` index (75×) | **PATCHED** |
|
||||
| cockroachdb-0001 | CockroachDB | `sql/opt/exec/execbuilder/` — `IndexesUsed.add()` `slices.Contains` on growing slice per plan node (248×) | **PATCHED** |
|
||||
| cockroachdb-0002 | CockroachDB | `sql/opt/` — `slices.Contains` on operator list per rewrite rule application (248×) | **PATCHED** |
|
||||
|
|
@ -397,6 +402,7 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| allegro5-0001 | Allegro 5 | `addons/audio/openal.c` — `al_play_sample()` free-slot linear scan O(N) per audio trigger; fix: idle-slot `Deque` (256×) | **PATCHED** |
|
||||
| sdl2-0001 | SDL2 | `src/joystick/SDL_joystick.c` — `SDL_GetJoystickFromID()` O(N) linear scan per joystick event; fix: `unordered_map<ID, joystick*>` (128×) | **PATCHED** |
|
||||
| grafana-0001 | Grafana | `public/app/core/utils/dag.ts` — `dfs()` visited-array `Array.includes()` O(N²) per time-range refresh; fix: `Set` (100×) | **PATCHED** |
|
||||
| grafana-0002 | Grafana | `pkg/services/folder/folderimpl/folder.go:253` + `dashboard_service.go` — `slices.Contains` on growing permission UID slice inside 4 `for p := range folderPermissions` loops; O(P²) per folder/dashboard permission sync; fix: `map[string]bool` (249×) | **PATCHED** |
|
||||
| clickhouse-0001 | ClickHouse | `src/Analyzer/ColumnTransformers.h` — `findReplacementExpression()` `std::find` on `replacements_names` O(C×T×R); fix: `unordered_map` index (200×) | **PATCHED** |
|
||||
| duckdb-0001 | DuckDB | `src/optimizer/` — `CorrelatedColumns::AddCorrelatedColumn()` `std::find` O(n) per merge call; O(n²) `MergeCorrelatedColumns()`; fix: `column_binding_set_t` shadow set | **PATCHED** |
|
||||
| rocksdb-001 | RocksDB | `lock/point/point_lock_manager.cc:791,1513,1706` — `std::find` on `LockInfo.txn_ids autovector` in 3 hot-path lock/unlock functions; O(T²) shared-lock churn | **PATCHED** |
|
||||
|
|
@ -437,6 +443,7 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| spring-0003 | Spring Framework | `context/event/AbstractApplicationEventMulticaster.java` — `allListeners ArrayList.contains()` per listener add; O(L²) total (200×) | **PATCHED** |
|
||||
| spring-0004 | Spring Framework | `context/event/AbstractApplicationEventMulticaster.java` — `DefaultListenerRetriever.allListeners ArrayList.contains()` same pattern (200×) | **PATCHED** |
|
||||
| spring-0005 | Spring Framework | `core/annotation/AnnotationTypeMapping.java` — `aliases ArrayList.contains()` in nested while(mapping)+for(attributes) loop; O(A²×M) at boot (200×) | **PATCHED** |
|
||||
| spring-0006 | Spring Framework | `webmvc/.../resource/VersionResourceResolver.java:136` — `addFixedVersionStrategy()` `patternsList.contains(prefix+p)` O(N²) at init; fix: `HashSet` (1000×) | **PATCHED** |
|
||||
| micronaut-0001 | Micronaut | `inject/src/.../ClassUtils.java` — `hierarchy ArrayList.contains()` in `while(superclass)+populateInterfaces` recursive loop; O(H²) class hierarchy scan (250×) | **PATCHED** |
|
||||
| micronaut-0002 | Micronaut | `core/annotation/MutableAnnotationMetadata.java` — `annotationList ArrayList.contains()` inside `for(parents)` loop; O(P×\|annotationList\|) (200×) | **PATCHED** |
|
||||
| micronaut-0003 | Micronaut | `context/env/EnvironmentPropertySource.java` — `excludes/includes List.contains()` inside `for(env.entrySet())` loop; O(E×N) per environment scan (50×) | **PATCHED** |
|
||||
|
|
@ -626,14 +633,17 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| flink-0002 | Apache Flink | `table/api/.../RowTypeUtils.java:43,49` — `checklist/result List<String>.contains()` in nested for+do-while; O(N×M²) field dedup (37×) | **PATCHED** |
|
||||
| flink-0003 | Apache Flink | `flink-table/.../AggregateReduceGroupingRule.java:88` — `newGroupingList List<Integer>.contains()` inside for loop; O(G²) query planning (50×) | **PATCHED** |
|
||||
| flink-0004 | Apache Flink | `flink-table/.../DynamicSinkUtils.java` — `updatedColumnNames List<String>.contains()+indexOf()` in schema-columns loop; O(C×U); fix: `HashSet`+`Map` (48×) | **PATCHED** |
|
||||
| flink-0005 | Apache Flink | `flink-table/.../DynamicPartitionPruningUtils.java:325` — `convertDppFactSide()` `fieldNames List<String>.indexOf()+contains()` O(A×F + K×A) in dim-partition join planning; fix: `HashMap`+`HashSet` (22×) | **PATCHED** |
|
||||
| nifi-0001 | Apache NiFi | `StandardControllerServiceProvider.determineEnablingOrder()` — recursive topo-sort uses `List<ControllerServiceNode>.contains()` O(S²); same structural defect as airflow/maven; fix: companion `HashSet` (16.7×) | **PATCHED** |
|
||||
| artemis-0001 | ActiveMQ Artemis | `BindingsImpl.routeFromCluster()` — `idsToAckList List<Long>.contains()` inside `while (buff.hasRemaining())` per-message hot routing loop; O(R×A); fix: `HashSet<Long>` (25×) | **PATCHED** |
|
||||
| pulsar-0001 | Apache Pulsar | `client/.../GetTopicsResult.java:117` — `grouped ArrayList.contains()` in for loop over topic list; O(N²) dedup (25×) | **PATCHED** |
|
||||
| pulsar-0002 | Apache Pulsar | `functions/runtime/.../JavaInstanceRunnable.java:987` — `allFields List<String>.contains()` in for loop; O(F×K) schema field scan (87×) | **PATCHED** |
|
||||
| kafka-0006 | Apache Kafka | `streams/.../tasks/DefaultTaskManager.java:62,105` — `lockedTasks ArrayList<TaskId>.contains()` in `assignNextTask()` per executor cycle; O(T×L) rebalance stall (76×) | **PATCHED** |
|
||||
| kafka-0007 | Apache Kafka | `streams/.../StreamsPartitionAssignor.java` — `assignTasksToThreads()` `PriorityQueue.contains(task)` O(T) per consumer×task; O(C×T²) total; fix: parallel `HashSet` + `LinkedHashSet` (14-109×) | **PATCHED** |
|
||||
| kafka-0008 | Apache Kafka | `clients/.../serialization/ListDeserializer.java` — `nullIndexList ArrayList<Integer>.contains(i)` O(S×N) per element in CONSTANT_SIZE deserialization loop; fix: `HashSet<Integer>` (24×) | **PATCHED** |
|
||||
| pulsar-0003 | Apache Pulsar | `broker/.../persistent/PersistentTopic.java:549,1991` — `replicationClusters List<String>.contains()` in replicators loop; O(C×R) per topic check (10×) | **PATCHED** |
|
||||
| pulsar-0004 | Apache Pulsar | `broker/.../persistent/PersistentTopic.java:2152` — `shadowTopics List<String>.contains()` in shadow-replicators loop; O(S×R) per check (10×) — fix mirrors NonPersistentTopic | **PATCHED** |
|
||||
| pulsar-0005 | Apache Pulsar | `client/.../PartialRoundRobinMessageRouterImpl.java:73` — `partialList CopyOnWriteArrayList<Integer>.contains()` in stream filter over N partitions; O(N×L) per routing call; fix: `HashSet<Integer>` (104×) | **PATCHED** |
|
||||
| spring-0001 | Spring Framework | `context/BeanFactoryUtils.java:521` — `ArrayList.contains()` in `mergeNamesWithParent()`, O(B²) over bean count | **PATCHED** |
|
||||
| spring-0002 | Spring Framework | `context/ConfigurationClassParser.java:422,653` — `ImportStack extends ArrayDeque`, O(n) `contains()` per candidate | **PATCHED** |
|
||||
| presto-0001 | Presto | `planner/iterative/rule/PushDownDereferences.java:206` — `ImmutableList.contains()` on `getOutputVariables()` per dereference | **PATCHED** |
|
||||
|
|
@ -776,6 +786,7 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| onos-0003 | ONOS (SDN) | `utils/misc/` — `roleinfo backups ImmutableList` O(n) membership scan per topology event | **PATCHED** |
|
||||
| jetty-0001 | Jetty | `jetty-http/src/main/java/.../HttpFields.java` — `QuotedCSV.getValues()` `LinkedList.contains()` O(n²); fix: `LinkedHashSet` (50×) | **PATCHED** |
|
||||
| mysql-0003 | MySQL | `sql/sql_base.cc` — `setup_fields()` `std::find` O(F²) iterator recovery after `split_sum_func` growth; fix: position index map (250×) | **PATCHED** |
|
||||
| mysql-0004 | MySQL | `storage/innobase/dict/dict0dict.cc` — `dict_index_find_and_set_cols()` `std::find` on `col_added/v_col_added` vectors O(F²) per field during `CREATE INDEX`/`ALTER TABLE`; fix: `unordered_set<ulint>` (99×) | **PATCHED** |
|
||||
| crystal-0002 | Crystal compiler | `src/compiler/crystal/semantic/type_inference.cr` — `add_type()` dedup `Array#includes?` O(T²) per type merge; fix: `Set(Type)` shadow (400×) | **PATCHED** |
|
||||
| crystal-0003 | Crystal compiler | `src/compiler/crystal/semantic/type_declaration_processor.cr:602` — `compute_non_nilable_outside_single()` `Array#includes?` O(A×N) ancestor loop; fix: `Set` before loop | **PATCHED** |
|
||||
| crystal-0004 | Crystal compiler | `src/compiler/crystal/semantic/type_inference.cr` — `add_to_including_types()` `Array#includes?` O(N) inside type inclusion loop; fix: `Set(Type)` seen-set (72×) | **PATCHED** |
|
||||
|
|
@ -788,6 +799,7 @@ stacks, Spark schemas — this is the dominant build cost.
|
|||
| postgresql-0006 | PostgreSQL | `src/backend/optimizer/util/tlist.c` — `add_to_flat_tlist()` `tlist_member` O(T) inside `foreach(exprs)`; O(E×T) total; fix: pointer-identity seen-set | **PATCHED** |
|
||||
| postgresql-0007 | PostgreSQL | `src/backend/optimizer/util/tlist.c` — `add_new_columns_to_pathtarget()` `list_member` O(T) inside `foreach(exprs)`; fix: `HashSet` from target->exprs | **PATCHED** |
|
||||
| postgresql-0008 | PostgreSQL | `src/backend/optimizer/path/joinpath.c` — `paraminfo_get_equal_hashops()` `list_member` O(N) dedup in foreach loop; O(N²) Memoize path planning; fix: `Bitmapset` | **PATCHED** |
|
||||
| postgresql-0009 | PostgreSQL | `src/backend/catalog/pg_inherits.c` — `typeInheritsFrom()` BFS `list_member_oid(visited, this_relid)` O(V²) per type cast at query parse time; fix: `HTAB` hash set (99×) | **PATCHED** |
|
||||
| wireshark-0001 | Wireshark | `epan/dfilter/dfilter.c` — `dfilter_interested_in_field()` int[] linear scan per color-filter per capture; fix: keep the compile-time `GHashTable` at runtime (O(1)) | **PATCHED** |
|
||||
| elasticsearch-0002 | Elasticsearch | `ingest/src/main/java/.../IngestDocument.java` — `appendFieldValue()` `List.contains()` O(n) per append in bulk ingest pipelines; fix: `HashSet` shadow | **PATCHED** |
|
||||
| opensearch-0001 | OpenSearch | `server/src/main/java/.../ImmutableCacheStatsHolder.java` — `filterLevels()` O(n²) `levelsList.contains()` per stat level; fix: `HashSet` | **PATCHED** |
|
||||
|
|
@ -858,7 +870,7 @@ where D is the depth of the diamond chain. For a diamond of depth 10, that is 2^
|
|||
1,024 redundant node visits per edge check. Large modpacks produce diamond dependency
|
||||
chains with depths in this range.
|
||||
|
||||
**578 sites patched. 3 deferred (PostgreSQL -0001/-0005; MongoDB -0005 IndexBounds). 1 fixable-upstream (Erlang OTP — sltab patch). 1 fixable-pending (swipl-0003 attr_unify_hook). 2 not-worth-fixing. 3 unpatched (Minecraft, Create mod). 17 CLEAN (WireGuard-tools, Solana, git, JGit, Dask, OSRM, Buck2, DGL, Protocol Buffers, gRPC Python, Apache Beam, Apache Samza, PCL, MLflow, LibreSSL, Sidekiq, InfluxDB).**
|
||||
**590 sites patched. 3 deferred (PostgreSQL -0001/-0005; MongoDB -0005 IndexBounds). 1 fixable-upstream (Erlang OTP — sltab patch). 1 fixable-pending (swipl-0003 attr_unify_hook). 2 not-worth-fixing. 3 unpatched (Minecraft, Create mod). 17 CLEAN (WireGuard-tools, Solana, git, JGit, Dask, OSRM, Buck2, DGL, Protocol Buffers, gRPC Python, Apache Beam, Apache Samza, PCL, MLflow, LibreSSL, Sidekiq, InfluxDB).**
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue