systemd-0004: seccomp_load_syscall_filter_set() in src/shared/seccomp-util.c uses
strv_contains(added, name) — O(|added|) linear scan — inside NULSTR_FOREACH over
~537 KNOWN syscalls. On x86_64 (3 arches): ~484,000 string comparisons per service
start with SeccompFilter=. Sibling function seccomp_load_syscall_filter_set_raw()
already uses hashmap_contains for O(1); this function was left behind.
Fix: build Set* from added strv before the NULSTR_FOREACH loop. MEDIUM severity.
dbus-0001: bus_client_policy_optimize() in bus/policy.c iterates R rules and for
each blanket deny/allow calls remove_rules_by_type_up_to() which scans backward
from current position to head — O(R^2) total per new connection creation.
At R=100 rules (realistic system bus): ~10,000 comparisons per connect.
Fix: single O(R) reverse pass tracking last-seen blanket per rule type. MEDIUM.
dbus 5-MOAD summary:
MOAD-0001: dbus-0001 DEFECT (policy optimize O(R^2))
MOAD-0002: CLEAN (BusContext is standard daemon context, not a god object)
MOAD-0003: CLEAN (single-threaded event loop, no thread-local state)
MOAD-0004: CLEAN (_dbus_verbose is no-op in production builds)
MOAD-0005: CLEAN (pending_activations hash table coalesces duplicate requests)