BBS: TELESC.NET.BR Assunto: src/ssh/TODO.md src/ssh/test/test_selftest.c De: Deuc¨ Data: Mon, 30 Mar 2026 14:17:14 -0700 ----------------------------------------------------------- https://gitlab.synchro.net/main/sbbs/-/commit/233f20f35c09bb106d715bc4 Modified Files: src/ssh/TODO.md src/ssh/test/test_selftest.c Log Message: Fix selftest race: cleanup while server echo thread still sending Two bugs caused segfaults in dssh_self_rsa under ctest -j16: 1. Server thread handle (thrd_t st) was a stack local lost when an ASSERT failed mid-test, so dssh_test_after_each cleanup could not join it -- the server thread kept running while the session was freed. 2. g_active_ctx pointed to a stack-local selftest_ctx whose frame was popped on test return. Cleanup's deeper function calls (terminate, join, session_cleanup) grew the stack into the old frame, corrupting the ctx data and causing a NULL deref in dssh_session_stop. Fix: add server_thread/server_thread_active fields to selftest_ctx; add selftest_start_thread() helper; restructure selftest_cleanup() to snapshot all ctx fields into a local copy before any function calls, then terminate both sessions, join the server thread, and finally cleanup sessions. All 27 test functions updated. Also adds TODO items 104-105 for two distinct test failures observed under -j16 that need separate investigation. Co-Authored-By: Claude Opus 4.6 (1M context)n --- mSynchronetn hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net ----------------------------------------------------------- [Voltar]