Ethereal-dev: [Ethereal-dev] packet-gtp.patch
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Pasi Paakala <pasi.paakala@xxxxxxxxx>
Date: Mon, 06 Jun 2005 13:46:15 +0300
Hi, this is my first try to contribute code. I do not have access to subversion so I hope I got this right (patch done with diff). I noticed that the decoder of the "Authentication Quintuplet" (3GPP 29.060 - 7.7.35) information element did not work. Field's "XRES Length" and "AUTN Length" were defined as 16 bits when in reality they are 8 bit's, this caused decoder to fail. Fixed mentioned fields 16bits --> 8bits and adjusted all "magic numbers" point to correct places and now it works. Also noticed that decoder of the "MM Context" uses this same function and it is doomed to fail, because when the Quintuplet(s) are passed inside Mm Ctxt the length is now length of the whole Quintuplet part not the length of one Quintuplet like Quintuplet-decoder (quite correctly) assumes. Well, it might work (did not try) if there is only one Quintuplet passed inside MmCtxt but usually this is not the case. Also the Mm Ctxt decoder is missing completely few length fields plus it tries to open field "Container" that can contain basically any L3 stuff --> not really GTP level job to open it + huge job to do (contains both TLV and TV IE's). I will correct MM Context (with Quintuplets) decoder next if I have time & interest ;-) -Pasi
--- original_packet-gtp.c 2005-06-01 09:38:48.000000000 +0300 +++ packet-gtp.c 2005-06-01 09:41:59.000000000 +0300 @@ -2863,10 +2863,10 @@ */ static int decode_quintuplet(tvbuff_t *tvb, int offset, proto_tree *tree, guint16 count, guint8 adjust) { - proto_tree *ext_tree_quint; proto_item *te_quint; - guint16 q_len, xres_len, auth_len, q_offset, i; + guint16 q_len, q_offset, i; + guint8 xres_len, auth_len; q_offset = 0; @@ -2881,19 +2881,20 @@ proto_tree_add_text(ext_tree_quint, tvb, offset, 2, "Length: %x", q_len); proto_tree_add_text(ext_tree_quint, tvb, offset+2, 16, "RAND: %s", tvb_bytes_to_str(tvb, offset+2, 16)); - xres_len = tvb_get_ntohs(tvb, offset+18); - proto_tree_add_text(ext_tree_quint, tvb, offset+18, 2, "XRES length: %u", xres_len); - proto_tree_add_text(ext_tree_quint, tvb, offset+20, xres_len, "XRES: %s", tvb_bytes_to_str(tvb, offset+20, xres_len)); - proto_tree_add_text(ext_tree_quint, tvb, offset+20+xres_len, 16, "Quintuplet ciphering key: %s", tvb_bytes_to_str(tvb, offset+20+xres_len, 16)); - proto_tree_add_text(ext_tree_quint, tvb, offset+36+xres_len, 16, "Quintuplet integrity key: %s", tvb_bytes_to_str(tvb, offset+36+xres_len, 16)); - auth_len = tvb_get_ntohs(tvb, offset+52+xres_len); - proto_tree_add_text(ext_tree_quint, tvb, offset+52+xres_len, 2, "Authentication length: %u", auth_len); - proto_tree_add_text(ext_tree_quint, tvb, offset+54+xres_len, auth_len, "AUTH: %s", tvb_bytes_to_str(tvb, offset+54+xres_len, auth_len)); + xres_len = tvb_get_guint8(tvb, offset+18); + proto_tree_add_text(ext_tree_quint, tvb, offset+18, 1, "XRES length: %u", xres_len); + proto_tree_add_text(ext_tree_quint, tvb, offset+19, xres_len, "XRES: %s", tvb_bytes_to_str(tvb, offset+19, xres_len)); + proto_tree_add_text(ext_tree_quint, tvb, offset+19+xres_len, 16, "Quintuplet Ciphering Key: %s", tvb_bytes_to_str(tvb, offset+20+xres_len, 16)); + proto_tree_add_text(ext_tree_quint, tvb, offset+19+xres_len, 16, "Quintuplet Integrity Key: %s", tvb_bytes_to_str(tvb, offset+36+xres_len, 16)); + auth_len = tvb_get_guint8(tvb, offset+51+xres_len); + proto_tree_add_text(ext_tree_quint, tvb, offset+51+xres_len, 1, "Authentication length: %u", auth_len); + proto_tree_add_text(ext_tree_quint, tvb, offset+52+xres_len, auth_len, "AUTH: %s", tvb_bytes_to_str(tvb, offset+52+xres_len, auth_len)); q_offset = q_offset + q_len + 2; } return q_offset; + } /* GPRS: 9.60 v7.6.0, chapter 7.9.19 page
- Prev by Date: [Ethereal-dev] Could any expert please help me on decoding H.248 over SCTP?
- Next by Date: Re: [Ethereal-dev] tektronix k12xx rf5 support
- Previous by thread: Re: [Ethereal-dev] Could any expert please help me on decoding H.248 over SCTP?
- Next by thread: RE: [Ethereal-dev] Flow graph functionality
- Index(es):