Loading debian/changelog +13 −0 Original line number Diff line number Diff line libnetplus (20260505+12) unstable; urgency=high * QUIC: fix crash "free(): invalid pointer" in quic::~quic() — child QUIC connections (accepted via the server's accept() method) shared the parent's socket file descriptor (_Socket). When a child was destroyed (e.g. during server shutdown or stale connection cleanup), ~udp() called ::close() on the shared fd. Subsequent children or the parent then operated on a closed/reused fd, causing heap corruption and the SIGABRT. Fix: set _Socket = -1 in the child destructor when _parent != nullptr so ~udp() skips the close. -- Jan Koester <jan.koester@tuxist.de> Mon, 05 May 2026 16:00:00 +0200 libnetplus (20260505+11) unstable; urgency=medium * QUIC: fix stream resurrection on retransmitted packets — when both Loading Loading
debian/changelog +13 −0 Original line number Diff line number Diff line libnetplus (20260505+12) unstable; urgency=high * QUIC: fix crash "free(): invalid pointer" in quic::~quic() — child QUIC connections (accepted via the server's accept() method) shared the parent's socket file descriptor (_Socket). When a child was destroyed (e.g. during server shutdown or stale connection cleanup), ~udp() called ::close() on the shared fd. Subsequent children or the parent then operated on a closed/reused fd, causing heap corruption and the SIGABRT. Fix: set _Socket = -1 in the child destructor when _parent != nullptr so ~udp() skips the close. -- Jan Koester <jan.koester@tuxist.de> Mon, 05 May 2026 16:00:00 +0200 libnetplus (20260505+11) unstable; urgency=medium * QUIC: fix stream resurrection on retransmitted packets — when both Loading