bullet3-0001: btGhostObject::addOverlappingObjectInternal O(N²) linear dedup per broadphase step — even carries "too slow" self-admission comment (HIGH) bullet3-0002: btSoftRigidCollisionAlgorithm::processCollision O(C×D) per frame on m_collisionDisabledObjects plain array (MEDIUM) allegro5: CLEAN (vector_contains only on non-hot setup paths) box2d: CLEAN (v3 rewrite uses b2HashSet throughout) dry: CLEAN (HashSet/HashMap on all hot dedup paths)
18 lines
599 B
Markdown
18 lines
599 B
Markdown
# alembic — CWE-407 Scan: CLEAN
|
|
|
|
Scanned: 2026-03-29
|
|
|
|
## Scope
|
|
|
|
- `alembic/script/revision.py` — migration DAG traversal
|
|
- `targets = set(targets)` (line 676)
|
|
- `todo = {d.revision for d in revisions}` (line 946, set comprehension)
|
|
- `current_heads` — tuple/set backed
|
|
- `alembic/runtime/migration.py` — `heads` is tuple from revision graph
|
|
|
|
## Verdict
|
|
|
|
No CWE-407 (algorithmic complexity / quadratic membership check) defects found.
|
|
Migration dependency graph traversal and conflict detection use `set`
|
|
comprehensions throughout. No list-based membership checks in the revision
|
|
walk.
|