aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-12-04 15:21:22 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-12-04 15:21:22 +0000
commite6d620f49258ffaf760e7c5fc8e09ae193ae2712 (patch)
tree653b891651ef2c848996df94a733480996f2bf0d /epan
parentcb037cdc463fd5f36fd329e0c6763cd0bfe98068 (diff)
From Vincent Helfre.
The offset in "Cell Selection Indicator after Release of all TCH and SDCCH" was not correct because the length was element was decoded twice. So I removed the second decoding of the length. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@40088 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-gsm_a_rr.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/epan/dissectors/packet-gsm_a_rr.c b/epan/dissectors/packet-gsm_a_rr.c
index 008ccb4b8d..56d3d9cdce 100644
--- a/epan/dissectors/packet-gsm_a_rr.c
+++ b/epan/dissectors/packet-gsm_a_rr.c
@@ -1226,6 +1226,13 @@ de_rr_utran_freq_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
guint8 value;
curr_offset = offset;
+ /* < UTRAN Freq List >::=
+ * < LENGTH OF UTRAN FREQ LIST : bit (8) > -- length following in octets
+ * { 1 < FDD_ARFCN > : bit (14) } ** 0 -- FDD frequencies
+ * { 1 < TDD_ARFCN > : bit (14) } ** 0 -- TDD frequencies
+ * <spare bit>**;
+ * Spare bits in the end of the field are used to fill the last octet.
+ */
proto_tree_add_item(tree, hf_gsm_a_rr_utran_freq_list_length, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
bit_offset = curr_offset << 3;
value = tvb_get_bits8(tvb,bit_offset,1);
@@ -1263,17 +1270,15 @@ convert_n_to_q[32] = { 0, 9, 17, 25, 32, 39, 46, 53, 59, 65, 71, 77, 83,
106, 111, 116, 121, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
static guint16
-de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
{
proto_tree *subtree, *subtree2;
proto_item *item, *item2;
guint32 curr_offset;
gint bit_offset, bit_offset_sav, idx, xdd_cell_info, wsize, nwi, jwi, w[64], i, iused, xdd_indic0;
- guint8 value, length;
+ guint8 value;
curr_offset = offset;
- length = tvb_get_guint8(tvb, curr_offset);
- curr_offset += 1;
bit_offset = curr_offset << 3;
value = tvb_get_bits8(tvb,bit_offset,3);
bit_offset += 3;
@@ -1477,7 +1482,7 @@ de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
break;
}
- curr_offset += length;
+ curr_offset += len;
return (curr_offset - offset);
}