libtorrent-0001: file_storage::get_or_add_path std::find on m_paths vector O(F*P) MEDIUM 250x qBittorrent: CLEAN (QSet/QHash throughout for membership tests)
1.1 KiB
1.1 KiB
qBittorrent — CWE-407 Scan Result: CLEAN
Scanned: 2026-03-30 Target: qBittorrent (C++/Qt) Source: https://github.com/qbittorrent/qBittorrent
Scope
src/base/bittorrent/— session, torrent impl, tracker, peer managementsrc/base/rss/— RSS auto-downloader, parser, feed managementsrc/base/search/— search plugin managersrc/gui/— transfer list, tracker list, tag/category filteringsrc/webui/— API controllers, sync controller
Finding
CLEAN. qBittorrent uses appropriate data structures throughout:
- Tags:
OrderedSet<Tag>(std::set) — O(log N) membership - Categories:
QHash<QString, CategoryOptions>— O(1) membership - Torrents:
QHash<TorrentID, TorrentImpl*>— O(1) lookup - Banned IPs: sorted
QStringListbut only accessed from user actions, not hot paths - Trackers:
QHash/QSetfor tracker host dedup in filter widgets - RSS article IDs:
QSet<QString>— O(1) dedup - Search disabled plugins:
QStringListwith O(N) contains, but N < 50 always
No QList/QVector linear membership test found in any hot loop or per-packet/per-torrent-update path.