• src/ssh/TODO.md ssh-conn.c src/ssh/test/dssh_test_internal.h test_conn

    From Deucе@VERT to Git commit to main/sbbs/master on Fri Mar 27 07:09:30 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8533cb551b49b8a61d338cf0
    Modified Files:
    src/ssh/TODO.md ssh-conn.c src/ssh/test/dssh_test_internal.h test_conn.c
    Log Message:
    Fix 3 window-accounting data races (items 51, 63, 84)

    local_window was modified without buf_mtx and before send_packet
    succeeded, causing flow-control drift and permanent channel stalls. session_write/write_ext used a stale remote_window snapshot from a
    separate lock acquisition, causing spurious DSSH_ERROR_TOOLONG.

    - send_window_adjust: update local_window under buf_mtx, only after
    send_packet succeeds
    - send_data/send_extended_data: add size_t *sentp parameter for
    clamp-under-lock mode (NULL = exact-or-fail)
    - session_write/write_ext: pass bufsz directly, let inner function
    clamp atomically (eliminates double-lock gap)
    - channel_write: remove racy unlocked pre-check of remote_window

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net