Skip to content

Commit

Permalink
Fixed fragment data size in IPv6 defragmentation
Browse files Browse the repository at this point in the history
  • Loading branch information
shapaz authored Jan 24, 2024
1 parent d71014a commit 8798cef
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion scapy/layers/inet6.py
Original file line number Diff line number Diff line change
Expand Up @@ -1133,13 +1133,15 @@ def defragment6(packets):

# regenerate the fragmentable part
fragmentable = b""
frag_hdr_len = len(IPv6ExtHdrFragment)
for p in res:
q = p[IPv6ExtHdrFragment]
offset = 8 * q.offset
if offset != len(fragmentable):
warning("Expected an offset of %d. Found %d. Padding with XXXX" % (len(fragmentable), offset)) # noqa: E501
frag_data_len = p[IPv6].plen - frag_hdr_len
fragmentable += b"X" * (offset - len(fragmentable))
fragmentable += raw(q.payload)
fragmentable += raw(q.payload)[:frag_data_len]

# Regenerate the unfragmentable part.
q = res[0].copy()
Expand Down

0 comments on commit 8798cef

Please sign in to comment.