Problem: The DMP dissector fails to correctly decode 4 character and longer SICs.
First reason: There is a 32 bit overflow in the following code: p = (gint) pow (multiplier, no_char - 1 - i); Multiplier is either 36.0 or 74.0, and "no_char" can be as high as 8. Second reason: An incorrect mask when decoding 4 character SICs (with characters [A-Z0-9]) results in data being lost: bytes = 3; value = (tvb_get_ntohl (tvb, offset) >> 8) & 0x1FF; The first line correctly indicates that there is 3 bytes worth of data, but the mask only caters for 2 bytes. Regards, Ian Brumby Software Engineer BAE SYSTEMS 78 Northbourne Ave Braddon ACT 2612 Australia
packet-dmp.diff
Description: packet-dmp.diff
_______________________________________________ Wireshark-dev mailing list Wireshark-dev@wireshark.org http://www.wireshark.org/mailman/listinfo/wireshark-dev