Hi,
Between 2.2 and the latest git a change seems to have been made to dissect_smb2_getinfo_request(). It now returns an integer based on the difference between two dissected values:
offset = getinfo_offset + getinfo_size;
return offset;
Unfortunately getinfo_offset and getinfo_size are sometimes zero and so a zero offset is returned. On return to dissect_smb2_command there’s some fiddling around until we get to:
proto_item_set_len(cmd_item, offset-old_offset);
The calculation of offset-old_offset yields a negative number which is passed to proto_item_set_len as a length parameter. In proto_item_set_len we have:
DISSECTOR_ASSERT(length >= 0);
Obviously this causes an exception.
Do I just feed this back as commentary on the Patch Set or should I raise a bug?