java-topology/whitepaper/vectors/tool-harness/ant.rst
russell@unturf.com 0a580b313d undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com

Patches, unit tests, benchmarks, whitepaper, and outreach briefs.
Public domain — no copyright claimed. Use freely.
2026-03-26 17:11:57 -04:00

30 lines
1.3 KiB
ReStructuredText

Apache Ant — CWE-407 Analysis
==============================
**Status: CLEAN — 0 confirmed defects**
Apache Ant's target dependency executor and class dependency analyzer were scanned.
The scanner returned 19 candidates; all are false positives on ``HashSet``-backed
collections.
Key findings:
- ``Project.java:1389````succeededTargets.contains(dependencyName)`` inside
``executeSortedTargets`` target dependency execution loop.
``succeededTargets`` is declared ``new HashSet<>()`` — O(1). FALSE POSITIVE.
- ``bcel/AncestorAnalyzer.java:99,106````!dependencies.contains(interfaceName/superClass)``
inside BCEL class hierarchy traversal loop. ``dependencies`` is declared
``new HashSet<>()`` — O(1). FALSE POSITIVE.
- ``bcel/FullAnalyzer.java:108`` — same pattern, same ``HashSet`` container. FALSE POSITIVE.
- ``DependScanner.java:131````parentSet.contains(fName)``. ``parentSet`` is built via
``.collect(Collectors.toSet())`` — a ``HashSet``. FALSE POSITIVE.
Despite being a ~2002-era Java codebase with high prior probability of ArrayList
patterns, Ant's dependency tracking code uses modern ``HashSet`` containers throughout.
The build system correctly avoids the CWE-407 pattern.
* Scanner: ``tools/scans/ant.sh``
* Scan result: ``tools/scan-results/ant.txt`` — 19 candidates, all false positives