diff options
author | Jörg Mayer <jmayer@loplof.de> | 2004-07-16 21:24:26 +0000 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2004-07-16 21:24:26 +0000 |
commit | 9da0dd21d703f967c7e33d38ca6b7af548193871 (patch) | |
tree | 558e84308beb1c1dd53f3d8780125ce7e8d1f0f1 | |
parent | 8106dc0862460d3447a5f9da6d3362a13b7344aa (diff) |
Indces run from 0-2 if an array is declared as array[3].
This patch has been part of RedHat since 0.9.16, unfortunately
the patch never made it into the mainline source.
The patch seems to be authored by Phil Knirsch (from ethereal.spec:
* Tue Nov 25 2003 Phil Knirsch <pknirsch@redhat.com> 0.9.16-3
- Fixed out of bound array access (#110749).
svn path=/trunk/; revision=11380
-rw-r--r-- | packet-gtp.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/packet-gtp.c b/packet-gtp.c index a31e930532..169ba7be6f 100644 --- a/packet-gtp.c +++ b/packet-gtp.c @@ -2208,14 +2208,14 @@ decode_gtp_rai(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tr te = proto_tree_add_text(tree, tvb, offset, 1, val_to_str(GTP_EXT_RAI, gtp_val, "Unknown message")); ext_tree_rai = proto_item_add_subtree(te, ett_gtp_rai); - byte[1] = tvb_get_guint8 (tvb, offset + 1); - byte[2] = tvb_get_guint8 (tvb, offset + 2); - byte[3] = tvb_get_guint8 (tvb, offset + 3); - mcc = (byte[1] & 0x0F) * 100 + ((byte[1] & 0xF0) >> 4) * 10 + (byte[2] & 0x0F ); - if ((byte[2] & 0xF0) == 0xF0) - mnc = (byte[3] & 0x0F) * 10 + ((byte[3] & 0xF0) >> 4); + byte[0] = tvb_get_guint8 (tvb, offset + 1); + byte[1] = tvb_get_guint8 (tvb, offset + 2); + byte[2] = tvb_get_guint8 (tvb, offset + 3); + mcc = (byte[0] & 0x0F) * 100 + ((byte[0] & 0xF0) >> 4) * 10 + (byte[1] & 0x0F ); + if ((byte[1] & 0xF0) == 0xF0) + mnc = (byte[2] & 0x0F) * 10 + ((byte[2] & 0xF0) >> 4); else - mnc = (byte[3] & 0x0F) * 100 + ((byte[3] & 0xF0) >> 4 ) * 10 + ((byte[2] & 0xF0) >> 4); + mnc = (byte[2] & 0x0F) * 100 + ((byte[2] & 0xF0) >> 4 ) * 10 + ((byte[1] & 0xF0) >> 4); proto_tree_add_uint(ext_tree_rai, hf_gtp_rai_mcc, tvb, offset+1, 2, mcc); proto_tree_add_uint(ext_tree_rai, hf_gtp_rai_mnc, tvb, offset+2, 2, mnc); |