Skip to content

Commit c7aa3e9

Browse files
EbrixEbrix
andauthored
Fix AclSize computation: issue #4831 (#4832)
Co-authored-by: Ebrix <[email protected]>
1 parent e35797e commit c7aa3e9

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

scapy/layers/smb2.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1505,8 +1505,14 @@ class WINNT_ACL(Packet):
15051505
fields_desc = [
15061506
ByteField("AclRevision", 2),
15071507
ByteField("Sbz1", 0x00),
1508+
# Total size including header:
1509+
# AclRevision(1) + Sbz1(1) + AclSize(2) + AceCount(2) + Sbz2(2)
15081510
FieldLenField(
1509-
"AclSize", None, length_of="Aces", adjust=lambda _, x: x + 14, fmt="<H"
1511+
"AclSize",
1512+
None,
1513+
length_of="Aces",
1514+
adjust=lambda _, x: x + 8,
1515+
fmt="<H",
15101516
),
15111517
FieldLenField("AceCount", None, count_of="Aces", fmt="<H"),
15121518
ShortField("Sbz2", 0),

test/scapy/layers/smb2.uts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,3 +575,5 @@ assert sd.DACLOffset == 44
575575
assert sd.OwnerSid.summary() == "S-1-1-0"
576576
assert sd.GroupSid.summary() == "S-1-1-0"
577577
assert sd.DACL.toSDDL() == ['(A;;;;;S-1-1-0)']
578+
579+
assert sd.DACL.AclSize == len(sd.DACL)

0 commit comments

Comments
 (0)