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(toolkit): the pypcapfile engine drops TCP behind an IPv6 extension header carried in IPv4 #1597
With engine='pypcapfile', TCP carried behind an IPv6 extension header placed directly in IPv4 is dropped from TCP reassembly, and no warning is given. This covers protocol 0 (Hop-by-Hop Options) and protocol 60 (Destination Options).
Repro, using Python 3.11 and pypcapfile 0.12.0. Each capture is Ethernet, then IPv4 with protocol 0 or 60, then a single extension header (next header 6, Hdr Ext Len 0, PadN 4), then TCP carrying data. Results are TCP datagrams reassembled, default engine vs pypcapfile:
The default engine dissects the extension header and finds the TCP inside. pypcapfile drops it.
Cause:_transport in pcapkit/toolkit/pypcapfile.py steps over AH only after the #1590 fix, and over nothing before it. No branch handles a Hop-by-Hop, Destination Options or Routing header inside IPv4.
Expected: step over the extension-header chain the way the default engine does, then treat what follows as TCP. Failing that, warn once per capture.
The #1590 worker found this, and I reproduced it on the three trees above. It is being folded into the stacked #1590–#1593/#1596 branch, because the fix uses the same header walk.
Activity
fix(toolkit): pypcapfile checks IPv4 and TCP headers as the default e…
fix(toolkit): pypcapfile checks IPv4 and TCP headers as the default e…
fix(toolkit): pypcapfile checks IPv4 and TCP headers as the default e…