You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(reassembly): unfragmented datagram with a buffered BUFID is dropped and flushes IPv6 #2270
Describe the bug
In IP.reassembly, a datagram with FO 0 and MF clear whose BUFID is already buffered submits the old buffer and returns. The datagram itself is dropped. IPv6 inherits this, so a colliding atomic fragment also cuts short the datagram being reassembled.
Reproduction (Packet records, BUFID shared, strict=False; strict=True behaves the same)
Expected behavior
IPv4: RFC 791 §3.2 flushes the BUFID and then submits this datagram, so (1,) PARTIAL plus (2,) COMPLETE. IPv6: RFC 6946 §4 says an atomic fragment MUST be processed in isolation, and the queued fragments MUST NOT be discarded. That gives (2,) COMPLETE and (1, 3) COMPLETE. Suggested fix: after the flush, fall through and reassemble the IPv4 datagram on its own. On IPv6, complete the atomic fragment without touching self._buffer.
System information
Linux, CPython 3.14.9, pcapkit 1.5.0b14, checkout main9d504ead5.
Activity
fix(reassembly): report an unfragmented datagram whose BUFID is buffe…
fix(reassembly): report an unfragmented datagram whose BUFID is buffe…
fix(reassembly): report an unfragmented datagram whose BUFID is buffe…
docs(protocols,foundation,tests): state current behaviour in maker, r…
docs(protocols,foundation,tests): state current behaviour in maker, r…
docs(protocols,foundation,tests): state current behaviour in maker, r…
docs(protocols,foundation,tests): state current behaviour in maker, r…
docs: #719-style prose sweep after the #1090-1102 defect wave (#2408)