BBS:      TELESC.NET.BR
Assunto:  src/ssh/TODO.md ssh-conn.c src/ssh/test/dssh_test_internal.h test_conn
De:       Deuc¨
Data:     Fri, 27 Mar 2026 07:09:30 -0700
-----------------------------------------------------------
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) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]