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
Attachment:
packet-dmp.diff
Description: packet-dmp.diff