| BUG-001 |
17 load-only hidden prefs not written back to preferences.ini |
Done |
| BUG-002 |
ASSERT(0) FIXME in ArchiveRecovery.cpp — unhandled format case falls through silently in release |
Wont-Fix |
| BUG-003 |
Historical large-file FIXME markers overstated the remaining live issue |
Done |
| BUG-004 |
IPFilter overlapping IP ranges not handled — acknowledged correctness gap |
Done |
| BUG-005 |
Kad buddy connections broken when RequireCrypt is enabled |
Wont-Fix |
| BUG-006 |
Weak RNG for crypto challenge value — rand() seeded with time(NULL) |
Wont-Fix |
| BUG-007 |
Ring.h — CRing pointer-state, access-guard, and defensive copy cleanup (CODEREV_003, 004, 011) |
Done |
| BUG-008 |
CaptchaGenerator — rand() & 8 produces bimodal jitter (only 0 or 8, never 1-7) |
Wont-Fix |
| BUG-009 |
PartFile — non-atomic part.met replacement (_tremove + _trename crash window) |
Done |
| BUG-010 |
PartFile — part.met written on low disk space, risking truncation/corruption |
Done |
| BUG-011 |
Race condition — shareddir_list iterated without lock in SendSharedDirectories |
Done |
| BUG-012 |
CPartFile destructor calls FlushBuffer after write thread has already exited |
DONE |
| BUG-013 |
ArchiveRecovery.cpp — three unchecked malloc() calls crash on OOM |
Wont-Fix |
| BUG-014 |
ZIPFile.cpp — WriteFile return value silently discarded on two paths |
Done |
| BUG-015 |
GetTickCount() 49-day overflow in ban expiry and download timeout checks |
Done |
| BUG-016 |
UDP obfuscation applied when crypt layer is disabled — IsCryptLayerEnabled() guard missing |
Done |
| BUG-017 |
UDP throttler deadlock — sendLocker held when signaling QueueForSendingControlPacket |
Done |
| BUG-018 |
Part-file hash layout drift — hash tree can mutate during concurrent hashing |
Done |
| BUG-019 |
AICH sync thread concurrency — multiple unsynchronized shared-state accesses |
Done |
| BUG-020 |
Client socket teardown ordering — cross-link not cleared before Safe_Delete |
Done |
| BUG-021 |
Upload queue lock inversion + socket I/O result mishandling + inflate buffer aliasing |
Done |
| BUG-022 |
Long-path delete-to-recycle-bin still breaks in ShellDeleteFile |
Done |
| BUG-023 |
Shared-file ED2K published column shows a false No after publish-state reset |
Done |
| BUG-024 |
statUTC(HANDLE) returns corrupted st_size by combining file size high with file index low |
Done |
| BUG-025 |
KnownFile hashing open failures log stale or wrong error text on Win32 open failure |
Done |
| BUG-026 |
Search tab teardown frees live result and tab-parameter objects before the UI detaches them |
Done |
| BUG-027 |
IP filter update can delete the live ipfilter.dat before replacement promotion succeeds |
Done |
| BUG-028 |
MP3 ID3 metadata extraction is ANSI-only; non-ACP filenames can silently lose tags |
Wont-Fix |
| BUG-029 |
Long-path tail hardening across config, media, shell, and GeoLocation surfaces |
Done |
| BUG-030 |
Obfuscated server logins can advertise redundant callback crypto flags and require extra attempts |
Done |
| BUG-031 |
Shared-file hashing fails too eagerly on transient sharing and lock violations |
DONE |
| BUG-032 |
AICH hashset save can fail spuriously after hashing because known2.met lock wait times out |
Done |
| BUG-033 |
WebSocket and MiniUPnP shutdown still use forced thread termination |
Wont-Fix |
| BUG-036 |
known.met and cancelled.met still save in place and can truncate on failure |
Done |
| BUG-037 |
Same-hash KnownFile replacement can unshare or mis-track equivalent files |
Done |
| BUG-038 |
Shared Files sort can retain stale rows after backing data changes |
Done |
| BUG-039 |
Client list lacked a reusable safe pointer membership check |
Done |
| BUG-040 |
Downloading Clients list could dereference stale client rows |
Done |
| BUG-041 |
Known Clients list could dereference stale client rows |
Done |
| BUG-042 |
Upload list could dereference stale upload rows |
Done |
| BUG-043 |
Queue list could dereference stale queue rows |
Done |
| BUG-044 |
Download source rows could outlive their backing source objects |
Done |
| BUG-045 |
Server list could dereference stale server rows |
Done |
| BUG-046 |
Kad contact list could dereference stale contact rows |
Done |
| BUG-047 |
Kad search list could dereference stale search rows |
Done |
| BUG-048 |
IRC nick rows were not cleared before nick objects were deleted |
Done |
| BUG-049 |
IRC channel tabs were not detached before channel objects were deleted |
Done |
| BUG-050 |
Chat tabs were not detached before chat items were deleted |
Done |
| BUG-051 |
IRC channel rows were not cleared before channel entries were deleted |
Done |
| BUG-052 |
Kad search constructor accidentally added placeholder rows |
Done |
| BUG-053 |
part.met backup could be refreshed from the newly written metadata |
Done |
| BUG-054 |
ESC in shared-file delete confirmation could still delete files |
Done |
| BUG-055 |
AICH recovery accepted invalid part bounds |
Done |
| BUG-056 |
Download Clients list could dereference stale rows during display callbacks |
Done |
| BUG-057 |
Close All Search Results could leave Kad keyword searches running |
Done |
| BUG-058 |
Tree option value labels could contain the parser separator |
Done |
| BUG-059 |
Download Remaining column alignment was inconsistent |
Done |
| BUG-060 |
REST API should stay available when web templates are absent |
Done |
| BUG-061 |
Legacy web interface template was missing from the shipped tree |
Done |
| BUG-062 |
Obfuscated server timeout did not retry plain connection promptly |
Done |
| BUG-063 |
ESC in shared-directory delete confirmation could still delete directories |
Done |
| BUG-064 |
Client list secondary display path needed stale-row guarding |
Done |
| BUG-065 |
Queue list secondary display path needed stale-row guarding |
Done |
| BUG-066 |
Upload list secondary display path needed stale-row guarding |
Done |
| BUG-067 |
REST log route lacked the expected get alias seam |
Done |
| BUG-068 |
Download progress-bar drawing can leak GDI state into neighboring list cells |
Done |
| BUG-069 |
WebServer static resource requests can escape the web root and allocate whole files |
Done |
| BUG-070 |
Ignored helper-thread launch failures can hang shutdown waits |
Done |
| BUG-071 |
server.met persistence still uses destructive backup and promotion moves |
Done |
| BUG-072 |
Kad preferences and routing snapshots still save in place |
Done |
| BUG-073 |
WebServer session and bad-login state is mutated from request threads without synchronization |
Done |
| BUG-074 |
Archive preview scanner uses volatile cancellation and synchronous UI handoff |
Wont-Fix |
| BUG-075 |
REST and WebServer typed error consistency |
Passed |
| BUG-076 |
WebServer malformed request hardening for REST and legacy HTML |
Passed |
| BUG-077 |
WebServer concurrent REST and legacy HTML soak coverage |
Passed |
| BUG-078 |
qBit compatibility auth can fail open when session RNG is unavailable |
Done |
| BUG-079 |
WebSocket shutdown can close the termination event while accepted clients still wait on it |
Done |
| BUG-080 |
WebSocket shutdown can forcibly terminate the listener thread |
Done |
| BUG-081 |
HTTPS WebSocket handshake and read loops can spin on WANT_READ/WANT_WRITE |
Done |
| BUG-082 |
GeoLocation and IPFilter background refresh flags can race and remain stuck |
Done |
| BUG-083 |
Client UDP malformed-packet logging can read past a one-byte packet |
Done |
| BUG-084 |
Web admin high-level actions leak the process token handle |
Done |
| BUG-085 |
Kad/client UDP encryption preference gating needs Release 1 compatibility proof |
Done |
| BUG-086 |
HTTPS WebSocket casts SOCKET storage to mbedtls_net_context |
Done |
| BUG-087 |
HTTPS WebSocket queued writes can stall after TLS WANT_READ |
Done |
| BUG-088 |
WebSocket timeout shutdown leaves global state unsafe for restart |
Done |
| BUG-089 |
UDP control sender can deadlock on exception while holding sendLocker |
Done |
| BUG-090 |
Background refresh completion can wedge when UI PostMessage fails |
Done |
| BUG-091 |
DirectDownload ignores close-time write failures |
Done |
| BUG-092 |
Background refresh workers can write through freed owner memory after shutdown |
Done |
| BUG-093 |
Failed refresh completion can synchronously block worker on UI thread |
Done |
| BUG-094 |
ResumeThread failure leaks suspended refresh thread objects |
Done |
| BUG-095 |
WebSocket accepted-client tracking is not exception-safe after thread start |
Done |
| BUG-096 |
DirectDownload lacks bounded timeout and cancellation contract |
Done |
| BUG-097 |
Startup-cache save worker can outlive shared-file list owner |
Done |
| BUG-098 |
Archive recovery worker uses raw part-file owner across async work |
Wont-Fix |
| BUG-099 |
WebSocket listener startup is not exception-safe after global state initialization |
Done |
| BUG-100 |
DirectDownload has bounded timeouts but no hard owner cancellation contract |
Done |
| BUG-101 |
Shared Files 50k recursive tree stress profile does not reach main window |
Done |
| BUG-102 |
aMuTorrent browser smoke ignores generated harness port |
Done |
| BUG-111 |
Release and help URLs still point outside the emulebb namespace |
Done |
| BUG-112 |
WebServer/qBit session tokens need CSPRNG-backed generation |
Wont-Fix |
| BUG-113 |
Auto-category non-regex matching skips usable tokens |
Done |
| BUG-114 |
Prevent Standby can leave Windows sleep prevention asserted after disable |
DONE |
| BUG-115 |
Tray left-click skips MiniMule and restores maximized windows as normal |
DONE |
| BUG-116 |
Search results can leave a floating horizontal scrollbar artifact |
DONE |
| BUG-118 |
CTag UInt64 values can serialize without guaranteed 64-bit promotion |
DONE |
| BUG-119 |
Audit part-file gap and progress arithmetic against eMuleAI hardening |
DONE |
| BUG-120 |
Audit obfuscated server retry behavior against eMuleAI repeat-login fix |
DONE |
| BUG-121 |
CorruptionBlackBox split reallocation can invalidate active CArray records |
DONE |
| BUG-122 |
CRing raw-owned buffer was accidentally copyable |
DONE |
| BUG-123 |
Failed reask source delete needed explicit download-owner detachment |
DONE |
| BUG-124 |
Log panes can nearly freeze the UI under high-volume output |
DONE |
| BUG-125 |
Harden client and queue lifetime edges found by focused review |
DONE |
| BUG-126 |
Harden transfer queue async lifetime edges |
DONE |
| BUG-127 |
Fix regressions from recent C++ hardening review |
DONE |
| BUG-128 |
Bound REST compatibility hot-path serialization |
DONE |
| BUG-130 |
Harden RC1 hot-path worker and metadata edges |
DONE |
| BUG-131 |
Harden RC1 completion, delete, and startup-cache lifetime edges |
DONE |
| BUG-133 |
Harden RC1 metadata bounds, REST polling, and worker shutdown edges |
DONE |
| BUG-134 |
Harden final RC1 shutdown, REST bounds, and AICH repair edges |
DONE |
| BUG-135 |
Harden final RC1 runtime stabilization edges |
DONE |
| BUG-136 |
Harden final RC1 review follow-up hot paths |
DONE |
| BUG-137 |
Harden final RC1 AICH, UPnP, listener, and Kad edges |
DONE |
| BUG-139 |
Clean exit can leave the shell tray icon behind |
DONE |
| BUG-140 |
Transfer UI updates can run on split presentation timers |
DONE |
| BUG-141 |
Source expand icons and video thumbnails can be visually oversized |
DONE |
| BUG-144 |
Remote shared-directory requests can freeze large shared profiles |
DONE |
| BUG-145 |
Suite bootstrap flow misses LAN, credential, category, and Arr sync polish |
DONE |
| BUG-148 |
Shared Files directory tree node stuck expanded after collapse and cannot re-expand |
DONE |
| BUG-149 |
Shared directory tree rebuild is slow and UI-blocking on large shared sets |
DONE |
| BUG-150 |
False multiple_names Caution on cosmetic search-name differences |
DONE |