diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-05-30 12:27:58 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-06-01 07:43:48 +0200 |
| commit | 6d787a674797c656c71442767360810457e3d24b (patch) | |
| tree | a1b08acf121174c3b2e7a411919e42dba8dd534c /src/irmd/oap | |
| parent | c3fe693a46026130cbff8906b350933c739d681e (diff) | |
| download | ouroboros-6d787a674797c656c71442767360810457e3d24b.tar.gz ouroboros-6d787a674797c656c71442767360810457e3d24b.zip | |
lib: Fix FRCT seqno leak on rxm alloc failure
The seqno was committed before calling rxm_arm, whose malloc could
fail and silently leave the seqno without a retransmission entry. None
of the recovery paths (RTO timer, RACK, SACK-driven, NACK-driven) can
repair a slot with NULL rxm, so the gap persists until the receiver's
keepalive marks the flow dead.
This fix splits rxm_arm into rxm_alloc plus rxm_arm (post-state
install). sack_rxm_snd follows the same alloc-then-arm shape.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/irmd/oap')
0 files changed, 0 insertions, 0 deletions
