[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

proposed wireshark_1.2.11-6+squeeze7



Hi release team,
          The attached debdiff is a proposed updated for wireshark 
(1.2.11-6+squeeze7). The security team suggest to fix this through stable-
proposed-updates instead of a DSA. The patch was properly tested.

Please let me know if I can upload to squeeze-proposed-updates.

Cheers, luciano
diff -Nru wireshark-1.2.11/debian/changelog wireshark-1.2.11/debian/changelog
--- wireshark-1.2.11/debian/changelog	2012-01-25 17:39:56.000000000 +0100
+++ wireshark-1.2.11/debian/changelog	2012-05-19 13:27:57.000000000 +0200
@@ -1,3 +1,13 @@
+wireshark (1.2.11-6+squeeze7) stable-proposed-updates; urgency=low
+
+  * security fixes from Wireshark 1.4.12:
+    - The ANSI A dissector could dereference a NULL pointer and crash
+      (CVE-2012-1593)
+    - The pcap and pcap-ng file parsers could crash trying to read ERF data
+      (CVE-2012-1595)
+
+ -- Balint Reczey <balint@balintreczey.hu>  Fri, 04 May 2012 23:47:43 +0200
+
 wireshark (1.2.11-6+squeeze6) stable-security; urgency=low
 
   * Fix CVE-2011-3483, CVE-2011-0042, CVE-2012-0068, CVE-2012-0067,
diff -Nru wireshark-1.2.11/debian/patches/37_fix-from-1.4.12-Global-variables-considered-harmful.patch wireshark-1.2.11/debian/patches/37_fix-from-1.4.12-Global-variables-considered-harmful.patch
--- wireshark-1.2.11/debian/patches/37_fix-from-1.4.12-Global-variables-considered-harmful.patch	1970-01-01 01:00:00.000000000 +0100
+++ wireshark-1.2.11/debian/patches/37_fix-from-1.4.12-Global-variables-considered-harmful.patch	2012-05-19 13:25:48.000000000 +0200
@@ -0,0 +1,1768 @@
+From 7186ad3d0af4190601cf8005b01585062f3c504d Mon Sep 17 00:00:00 2001
+From: Balint Reczey <balint@balintreczey.hu>
+Date: Fri, 4 May 2012 23:05:49 +0200
+Subject: [PATCH 1/2] Global variables considered harmful.  Pass pinfo along as a parameter;
+ this appears to fix bug 6823 (the actual crash was a null pinfo being
+ passed to call_dissector()).
+
+svn path=/trunk/; revision=40962
+
+Conflicts:
+
+	epan/dissectors/packet-ansi_a.c
+---
+ epan/dissectors/packet-ansi_a.c |  387 +++++++++++++++++++--------------------
+ 1 files changed, 192 insertions(+), 195 deletions(-)
+
+diff --git a/epan/dissectors/packet-ansi_a.c b/epan/dissectors/packet-ansi_a.c
+index b9b9c4f..3441ad0 100644
+--- a/epan/dissectors/packet-ansi_a.c
++++ b/epan/dissectors/packet-ansi_a.c
+@@ -718,7 +718,6 @@ static dissector_handle_t dtap_handle;
+ static dissector_table_t is637_dissector_table; /* IS-637-A Transport Layer (SMS) */
+ static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */
+ static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
+-static packet_info *g_pinfo;
+ static proto_tree *g_tree;
+ static address rtp_src_addr;
+ static guint32 rtp_ipv4_addr;
+@@ -948,7 +947,7 @@ ansi_a_so_int_to_str(
+  * IOS 6.2.2.6
+  */
+ static guint8
+-elem_chan_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_chan_num(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     curr_offset;
+@@ -1002,7 +1001,7 @@ elem_chan_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 6.2.2.7
+  */
+ static guint8
+-elem_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_chan_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -1115,7 +1114,7 @@ elem_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 5 4.2.83
+  */
+ static guint8
+-elem_return_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++elem_return_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     const gchar *str;
+@@ -1160,7 +1159,7 @@ elem_return_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
+  * IOS 6.2.2.8
+  */
+ static guint8
+-elem_rf_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_rf_chan_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -1238,7 +1237,7 @@ elem_rf_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 5 4.2.86
+  */
+ static guint8
+-elem_sr_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_sr_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -1273,7 +1272,7 @@ elem_sr_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
+  * IOS 6.2.2.9
+  */
+ static guint8
+-elem_sid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_sid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     curr_offset;
+@@ -1312,7 +1311,7 @@ elem_sid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.10
+  */
+ static guint8
+-elem_is95_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_is95_chan_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -1428,7 +1427,7 @@ elem_is95_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
+  * IOS 6.2.2.12
+  */
+ static guint8
+-elem_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_enc_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      oct_len;
+@@ -1538,7 +1537,7 @@ elem_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 6.2.2.15
+  */
+ static guint8
+-elem_cm_info_type_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cm_info_type_2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct, oct2;
+     guint8      num_bands, band_class_count;
+@@ -1919,7 +1918,7 @@ elem_cm_info_type_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.16
+  */
+ static guint8
+-elem_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_mid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      *poctets;
+@@ -2303,7 +2302,7 @@ elem_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.17
+  */
+ static guint8
+-elem_sci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_sci(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -2339,7 +2338,7 @@ elem_sci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.18
+  */
+ static guint8
+-elem_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_prio(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -2388,7 +2387,7 @@ elem_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
+  * IOS 5 4.2.79
+  */
+ static guint8
+-elem_p_rev(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_p_rev(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -2413,7 +2412,7 @@ elem_p_rev(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
+  * IOS 6.2.2.19
+  */
+ static guint8
+-elem_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -2699,7 +2698,7 @@ elem_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
+ }
+ 
+ static guint8
+-elem_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cell_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -2740,7 +2739,7 @@ elem_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+  * IOS 6.2.2.21
+  */
+ static guint8
+-elem_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cell_id_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      consumed;
+@@ -2813,7 +2812,7 @@ elem_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
+  * IOS 6.2.2.22
+  */
+ static guint8
+-elem_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cic(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     curr_offset;
+@@ -2850,7 +2849,7 @@ elem_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.23
+  */
+ static guint8
+-elem_cic_ext(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cic_ext(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -2914,7 +2913,7 @@ elem_cic_ext(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+  * IOS 5 4.2.21
+  */
+ static guint8
+-elem_ssci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_ssci(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -3073,7 +3072,7 @@ elem_downlink_re_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.25
+  */
+ static guint8
+-elem_downlink_re(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_downlink_re(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     curr_offset;
+ 
+@@ -3091,7 +3090,7 @@ elem_downlink_re(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
+  * IOS 6.2.2.140
+  */
+ static guint8
+-elem_downlink_re_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_downlink_re_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      consumed;
+     guint8      num_envs;
+@@ -3174,7 +3173,7 @@ elem_downlink_re_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.2.2.30
+  */
+ static guint8
+-elem_pdsn_ip_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_pdsn_ip_addr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -3193,7 +3192,7 @@ elem_pdsn_ip_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
+  * IOS 5 4.2.24
+  */
+ static guint8
+-elem_s_pdsn_ip_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_s_pdsn_ip_addr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -3212,7 +3211,7 @@ elem_s_pdsn_ip_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.31
+  */
+ static guint8
+-elem_ho_pow_lev(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_ho_pow_lev(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      consumed;
+@@ -3331,7 +3330,7 @@ elem_ho_pow_lev(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.32
+  */
+ static guint8
+-elem_uz_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_uz_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     curr_offset;
+@@ -3362,7 +3361,7 @@ elem_uz_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
+  * IOS 5 4.2.77
+  */
+ static guint8
+-elem_info_rec_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_info_rec_req(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      rec_type;
+     guint8      num_recs;
+@@ -3414,7 +3413,7 @@ elem_info_rec_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
+  * IOS 6.2.2.34
+  */
+ static guint8
+-elem_is2000_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_is2000_chan_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint8      num_chan;
+@@ -3610,7 +3609,7 @@ elem_is2000_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.36
+  */
+ static guint8
+-elem_is95_ms_meas_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_is95_ms_meas_chan_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -3667,7 +3666,7 @@ elem_is95_ms_meas_chan_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
+  * IOS 6.2.2.37
+  */
+ static guint8
+-elem_clg_party_ascii_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_clg_party_ascii_num(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -3798,7 +3797,7 @@ elem_clg_party_ascii_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
+  * IOS 6.2.2.38
+  */
+ static guint8
+-elem_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_l3_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+     tvbuff_t    *l3_tvb;
+@@ -3813,7 +3812,7 @@ elem_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+      */
+     l3_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+ 
+-    call_dissector(dtap_handle, l3_tvb, g_pinfo, g_tree);
++    call_dissector(dtap_handle, l3_tvb, pinfo, g_tree);
+ 
+     curr_offset += len;
+ 
+@@ -3847,7 +3846,7 @@ elem_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+  * IOS 6.2.2.43
+  */
+ static guint8
+-elem_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_lai(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint16     value;
+@@ -3903,7 +3902,7 @@ elem_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.44
+  */
+ static guint8
+-elem_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_rej_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -3960,7 +3959,7 @@ elem_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 5 4.2.78
+  */
+ static guint8
+-elem_anchor_pdsn_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_anchor_pdsn_addr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -3979,7 +3978,7 @@ elem_anchor_pdsn_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 5 4.2.80
+  */
+ static guint8
+-elem_anchor_pp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_anchor_pp_addr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -3998,7 +3997,7 @@ elem_anchor_pp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.45
+  */
+ static guint8
+-elem_auth_chlg_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_auth_chlg_param(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4052,7 +4051,7 @@ elem_auth_chlg_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.46
+  */
+ static guint8
+-elem_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_auth_resp_param(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4105,7 +4104,7 @@ elem_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.47
+  */
+ static guint8
+-elem_auth_param_count(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_auth_param_count(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4141,7 +4140,7 @@ elem_auth_param_count(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.2.2.48
+  */
+ static guint8
+-elem_mwi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_mwi(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4175,7 +4174,7 @@ elem_mwi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.50
+  */
+ static guint8
+-elem_signal(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_signal(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4264,7 +4263,7 @@ elem_signal(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
+  * IOS 6.2.2.52
+  */
+ static guint8
+-elem_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cld_party_bcd_num(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      *poctets;
+@@ -4350,7 +4349,7 @@ elem_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  */
+ #ifdef MAYBE_USED_FOR_OLDER_CODECS
+ static guint8
+-elem_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_clg_party_bcd_num(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      *poctets;
+@@ -4486,7 +4485,7 @@ elem_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 6.2.2.54
+  */
+ static guint8
+-elem_qos_params(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_qos_params(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4521,7 +4520,7 @@ elem_qos_params(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.55
+  */
+ static guint8
+-elem_cause_l3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cause_l3(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4695,7 +4694,7 @@ elem_cause_l3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 6.2.2.58
+  */
+ static guint8
+-elem_xmode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_xmode(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4741,7 +4740,7 @@ elem_xmode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
+  * IOS 6.2.2.61
+  */
+ static guint8
+-elem_reg_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_reg_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -4786,7 +4785,7 @@ elem_reg_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 6.2.2.62
+  */
+ static guint8
+-elem_tag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_tag(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     curr_offset;
+@@ -4814,7 +4813,7 @@ elem_tag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
+  * IOS 6.2.2.63
+  */
+ static guint8
+-elem_hho_params(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_hho_params(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     gint        temp_int;
+@@ -5002,7 +5001,7 @@ elem_hho_params(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.65
+  */
+ static guint8
+-elem_sw_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_sw_ver(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      major, minor, point;
+     guint32     curr_offset;
+@@ -5055,7 +5054,7 @@ elem_sw_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
+  * IOS 6.2.2.66
+  */
+ static guint8
+-elem_so(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_so(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint16     value;
+     guint32     curr_offset;
+@@ -5102,7 +5101,7 @@ elem_so(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
+  * IOS 5 4.2.73
+  */
+ static guint8
+-elem_soci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_soci(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -5137,7 +5136,7 @@ elem_soci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
+  * IOS 5 4.2.74
+  */
+ static guint8
+-elem_so_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_so_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      num_so;
+@@ -5202,7 +5201,7 @@ elem_so_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+ 
+         curr_offset++;
+ 
+-        curr_offset += elem_so(tvb, subtree, curr_offset, len, add_string, string_len);
++        curr_offset += elem_so(tvb, pinfo, subtree, curr_offset, len, add_string, string_len);
+         add_string[0] = '\0';
+ 
+         inst++;
+@@ -5223,7 +5222,7 @@ elem_so_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+  * IOS 5 4.2.70
+  */
+ static guint8
+-elem_acc_net_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_acc_net_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     sid, nid, pzid;
+@@ -5307,7 +5306,7 @@ static const value_string ansi_a_adds_strings[] = {
+  * IOS 6.2.2.67
+  */
+ static guint8
+-elem_adds_user_part(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_adds_user_part(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -5360,7 +5359,7 @@ elem_adds_user_part(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+         adds_tvb = tvb_new_subset(tvb, curr_offset, len - 1, len - 1);
+ 
+         dissector_try_port(is637_dissector_table,
+-            0, adds_tvb, g_pinfo, g_tree);
++            0, adds_tvb, pinfo, g_tree);
+ 
+         curr_offset += (len - 1);
+         break;
+@@ -5369,7 +5368,7 @@ elem_adds_user_part(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+         adds_tvb = tvb_new_subset(tvb, curr_offset, len - 1, len - 1);
+ 
+         dissector_try_port(is683_dissector_table,
+-            (g_pinfo->p2p_dir == P2P_DIR_RECV), adds_tvb, g_pinfo, g_tree);
++            (pinfo->p2p_dir == P2P_DIR_RECV), adds_tvb, pinfo, g_tree);
+ 
+         curr_offset += (len - 1);
+         break;
+@@ -5378,7 +5377,7 @@ elem_adds_user_part(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+         adds_tvb = tvb_new_subset(tvb, curr_offset, len - 1, len - 1);
+ 
+         dissector_try_port(is801_dissector_table,
+-            (g_pinfo->p2p_dir == P2P_DIR_RECV), adds_tvb, g_pinfo, g_tree);
++            (pinfo->p2p_dir == P2P_DIR_RECV), adds_tvb, pinfo, g_tree);
+ 
+         curr_offset += (len - 1);
+         break;
+@@ -5440,7 +5439,7 @@ elem_adds_user_part(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 5 4.2.75
+  */
+ static guint8
+-elem_amps_hho_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_amps_hho_param(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -5472,7 +5471,7 @@ elem_amps_hho_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.68
+  */
+ static guint8
+-elem_is2000_scr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_is2000_scr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct, num_con_rec, i;
+     guint8      bit_mask, bit_offset;
+@@ -5840,7 +5839,7 @@ elem_is2000_scr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.69
+  */
+ static guint8
+-elem_is2000_nn_scr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_is2000_nn_scr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -5893,7 +5892,7 @@ elem_is2000_nn_scr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
+  * IOS 6.2.2.70
+  */
+ static guint8
+-elem_is2000_mob_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_is2000_mob_cap(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint8      oct_len;
+@@ -6225,7 +6224,7 @@ elem_is2000_mob_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
+  * IOS 6.2.2.71
+  */
+ static guint8
+-elem_ptype(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_ptype(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint32     value;
+     guint32     curr_offset;
+@@ -6263,7 +6262,7 @@ elem_ptype(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
+  * IOS 6.2.2.72
+  */
+ static guint8
+-elem_fwd_ms_info_recs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_fwd_ms_info_recs(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      oct_len;
+@@ -6553,7 +6552,7 @@ elem_fwd_ms_info_recs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.2.2.72
+  */
+ static guint8
+-elem_rev_ms_info_recs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_rev_ms_info_recs(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint8      oct_len;
+@@ -6883,7 +6882,7 @@ elem_rev_ms_info_recs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.2.2.73
+  */
+ static guint8
+-elem_ext_ho_dir_params(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_ext_ho_dir_params(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -7101,7 +7100,7 @@ elem_ext_ho_dir_params(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 6.2.2.79
+  */
+ static guint8
+-elem_cdma_sowd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cdma_sowd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -7110,7 +7109,7 @@ elem_cdma_sowd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+ 
+     curr_offset = offset;
+ 
+-    curr_offset += elem_cell_id(tvb, tree, offset, len, add_string, string_len);
++    curr_offset += elem_cell_id(tvb, pinfo, tree, offset, len, add_string, string_len);
+     add_string[0] = '\0';
+ 
+     value = tvb_get_ntohs(tvb, curr_offset);
+@@ -7175,7 +7174,7 @@ elem_cdma_sowd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 6.2.2.82
+  */
+ static guint8
+-elem_re_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_re_res(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7368,7 +7367,7 @@ elem_re_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
+  * IOS 6.2.2.105
+  */
+ static guint8
+-elem_cld_party_ascii_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cld_party_ascii_num(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7448,7 +7447,7 @@ elem_cld_party_ascii_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
+  * IOS 6.2.2.106
+  */
+ static guint8
+-elem_band_class(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_band_class(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7510,7 +7509,7 @@ elem_band_class(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.110
+  */
+ static guint8
+-elem_is2000_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_is2000_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -7545,7 +7544,7 @@ elem_is2000_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
+  * IOS 6.2.2.114
+  */
+ static guint8
+-elem_auth_event(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_auth_event(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7702,7 +7701,7 @@ elem_auth_event(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.138
+  */
+ static guint8
+-elem_psmm_count(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_psmm_count(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7735,7 +7734,7 @@ elem_psmm_count(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.139
+  */
+ static guint8
+-elem_geo_loc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_geo_loc(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -7794,7 +7793,7 @@ elem_geo_loc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+  * IOS 6.2.2.148
+  */
+ static guint8
+-elem_cct_group(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_cct_group(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -7873,7 +7872,7 @@ elem_cct_group(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 6.2.2.149
+  */
+ static guint8
+-elem_paca_ts(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_paca_ts(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint32     curr_offset;
+ 
+@@ -7892,7 +7891,7 @@ elem_paca_ts(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
+  * IOS 6.2.2.150
+  */
+ static guint8
+-elem_paca_order(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_paca_order(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7941,7 +7940,7 @@ elem_paca_order(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
+  * IOS 6.2.2.151
+  */
+ static guint8
+-elem_paca_reoi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_paca_reoi(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -7975,7 +7974,7 @@ elem_paca_reoi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
+  * IOS 5 4.2.89
+  */
+ static guint8
+-elem_a2p_bearer_session(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_a2p_bearer_session(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -8064,7 +8063,7 @@ elem_a2p_bearer_session(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
+  * IOS 5 4.2.90
+  */
+ static guint8
+-elem_a2p_bearer_format(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_a2p_bearer_format(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8                              oct;
+     proto_item                          *item;
+@@ -8312,8 +8311,8 @@ elem_a2p_bearer_format(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+ 
+             first_assigned_found = TRUE;
+ 
+-            rtp_add_address(g_pinfo, &rtp_src_addr, rtp_port, 0, "IOS5",
+-                g_pinfo->fd->num, FALSE, rtp_dyn_payload);
++            rtp_add_address(pinfo, &rtp_src_addr, rtp_port, 0, "IOS5",
++                pinfo->fd->num, FALSE, rtp_dyn_payload);
+         }
+ 
+         num_bearers++;
+@@ -8333,7 +8332,7 @@ elem_a2p_bearer_format(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 5 4.2.88
+  */
+ static guint8
+-elem_ms_des_freq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
++elem_ms_des_freq(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+ {
+     guint8      oct;
+     guint32     value;
+@@ -8390,7 +8389,7 @@ elem_ms_des_freq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
+  * IOS 5 4.2.87
+  */
+ static guint8
+-elem_plcm_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++elem_plcm_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -8559,7 +8558,7 @@ elem_idx_t;
+ #define MAX_IOS401_NUM_ELEM_1 (sizeof(ansi_a_ios401_elem_1_strings)/sizeof(ext_value_string_t))
+ #define MAX_IOS501_NUM_ELEM_1 (sizeof(ansi_a_ios501_elem_1_strings)/sizeof(ext_value_string_t))
+ static gint ett_ansi_elem_1[MAX(MAX_IOS401_NUM_ELEM_1, MAX_IOS501_NUM_ELEM_1)];
+-static guint8 (*elem_1_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) =
++static guint8 (*elem_1_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) =
+ {
+     elem_acc_net_id,    /* Access Network Identifiers */
+     elem_adds_user_part,        /* ADDS User Part */
+@@ -8659,7 +8658,7 @@ static guint8 (*elem_1_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, g
+  * Type Length Value (TLV) element dissector
+  */
+ static guint8
+-elem_tlv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, guint len, const gchar *name_add)
++elem_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, guint32 offset, guint len, const gchar *name_add)
+ {
+     guint8      oct, parm_len;
+     guint8      consumed;
+@@ -8719,7 +8718,7 @@ elem_tlv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, guint
+                 a_add_string=ep_alloc(1024);
+                 a_add_string[0] = '\0';
+                 consumed =
+-                    (*elem_1_fcn[dec_idx])(tvb, subtree, curr_offset + 2,
++                    (*elem_1_fcn[dec_idx])(tvb, pinfo, subtree, curr_offset + 2,
+                         parm_len, a_add_string, 1024);
+ 
+                 if (a_add_string[0] != '\0')
+@@ -8742,7 +8741,7 @@ elem_tlv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, guint
+  * is not defined for these.
+  */
+ static guint8
+-elem_tv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, const gchar *name_add)
++elem_tv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, guint32 offset, const gchar *name_add)
+ {
+     guint8      oct;
+     guint8      consumed;
+@@ -8796,7 +8795,7 @@ elem_tv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, const g
+ 
+             a_add_string=ep_alloc(1024);
+             a_add_string[0] = '\0';
+-            consumed = (*elem_1_fcn[dec_idx])(tvb, subtree, curr_offset + 1, -1, a_add_string, 1024);
++            consumed = (*elem_1_fcn[dec_idx])(tvb, pinfo, subtree, curr_offset + 1, -1, a_add_string, 1024);
+ 
+             if (a_add_string[0] != '\0')
+             {
+@@ -8819,7 +8818,7 @@ elem_tv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, const g
+  * is not defined for these.
+  */
+ static guint8
+-elem_t(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, const gchar *name_add)
++elem_t(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, elem_idx_t idx, guint32 offset, const gchar *name_add)
+ {
+     guint8      oct;
+     guint32     curr_offset;
+@@ -8854,7 +8853,7 @@ elem_t(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, const gc
+  * Length Value (LV) element dissector
+  */
+ static guint8
+-elem_lv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, guint len _U_, const gchar *name_add)
++elem_lv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, guint32 offset, guint len _U_, const gchar *name_add)
+ {
+     guint8      parm_len;
+     guint8      consumed;
+@@ -8906,7 +8905,7 @@ elem_lv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, guint l
+             a_add_string=ep_alloc(1024);
+             a_add_string[0] = '\0';
+             consumed =
+-                (*elem_1_fcn[dec_idx])(tvb, subtree, curr_offset + 1,
++                (*elem_1_fcn[dec_idx])(tvb, pinfo, subtree, curr_offset + 1,
+                     parm_len, a_add_string, 1024);
+ 
+             if (a_add_string[0] != '\0')
+@@ -8926,7 +8925,7 @@ elem_lv(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset, guint l
+  * is not defined for these.
+  */
+ static guint8
+-elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
++elem_v(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -8959,7 +8958,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+         a_add_string=ep_alloc(1024);
+         a_add_string[0] = '\0';
+-        consumed = (*elem_1_fcn[dec_idx])(tvb, tree, curr_offset, -1, a_add_string, 1024);
++        consumed = (*elem_1_fcn[dec_idx])(tvb, pinfo, tree, curr_offset, -1, a_add_string, 1024);
+     }
+ 
+     return(consumed);
+@@ -8968,7 +8967,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_MAND_TLV(elem_idx, elem_name_addition) \
+ {\
+-    if ((consumed = elem_tlv(tvb, tree, elem_idx, curr_offset, curr_len, elem_name_addition)) > 0) \
++    if ((consumed = elem_tlv(tvb, pinfo, tree, elem_idx, curr_offset, curr_len, elem_name_addition)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -8988,7 +8987,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_OPT_TLV(elem_idx, elem_name_addition) \
+ {\
+-    if ((consumed = elem_tlv(tvb, tree, elem_idx, curr_offset, curr_len, elem_name_addition)) > 0) \
++    if ((consumed = elem_tlv(tvb, pinfo, tree, elem_idx, curr_offset, curr_len, elem_name_addition)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -8998,7 +8997,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_MAND_TV(elem_idx, elem_name_addition) \
+ {\
+-    if ((consumed = elem_tv(tvb, tree, elem_idx, curr_offset, elem_name_addition)) > 0) \
++    if ((consumed = elem_tv(tvb, pinfo, tree, elem_idx, curr_offset, elem_name_addition)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -9018,7 +9017,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_OPT_TV(elem_idx, elem_name_addition) \
+ {\
+-    if ((consumed = elem_tv(tvb, tree, elem_idx, curr_offset, elem_name_addition)) > 0) \
++    if ((consumed = elem_tv(tvb, pinfo, tree, elem_idx, curr_offset, elem_name_addition)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -9028,7 +9027,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_OPT_T(elem_idx, elem_name_addition) \
+ {\
+-    if ((consumed = elem_t(tvb, tree, elem_idx, curr_offset, elem_name_addition)) > 0) \
++    if ((consumed = elem_t(tvb, pinfo, tree, elem_idx, curr_offset, elem_name_addition)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -9038,7 +9037,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_MAND_LV(elem_idx, elem_name_addition) \
+ {\
+-    if ((consumed = elem_lv(tvb, tree, elem_idx, curr_offset, curr_len, elem_name_addition)) > 0) \
++    if ((consumed = elem_lv(tvb, pinfo, tree, elem_idx, curr_offset, curr_len, elem_name_addition)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -9052,7 +9051,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+ 
+ #define ELEM_MAND_V(elem_idx) \
+ {\
+-    if ((consumed = elem_v(tvb, tree, elem_idx, curr_offset)) > 0) \
++    if ((consumed = elem_v(tvb, pinfo, tree, elem_idx, curr_offset)) > 0) \
+     { \
+         curr_offset += consumed; \
+         curr_len -= consumed; \
+@@ -9069,7 +9068,7 @@ elem_v(tvbuff_t *tvb, proto_tree *tree, elem_idx_t idx, guint32 offset)
+  * IOS 6.1.2.1
+  */
+ static void
+-bsmap_cl3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_cl3_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9089,7 +9088,7 @@ bsmap_cl3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.2
+  */
+ static void
+-dtap_cm_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_cm_srvc_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9208,7 +9207,7 @@ dtap_cm_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.1.3
+  */
+ static void
+-dtap_cm_srvc_req_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_cm_srvc_req_cont(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9230,7 +9229,7 @@ dtap_cm_srvc_req_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.1.2.3
+  */
+ static void
+-bsmap_page_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_page_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9273,7 +9272,7 @@ bsmap_page_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.4
+  */
+ static void
+-dtap_page_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_page_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9336,7 +9335,7 @@ dtap_page_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.12
+  */
+ static void
+-dtap_progress(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_progress(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9358,7 +9357,7 @@ dtap_progress(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.8.1
+  */
+ static void
+-dtap_srvc_redirection(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_srvc_redirection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9386,7 +9385,7 @@ dtap_srvc_redirection(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 5 3.1.11
+  */
+ static void
+-dtap_srvc_release(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_srvc_release(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9408,7 +9407,7 @@ dtap_srvc_release(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.1.12
+  */
+ static void
+-dtap_srvc_release_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_srvc_release_complete(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9426,7 +9425,7 @@ dtap_srvc_release_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
+  * IOS 6.1.2.15
+  */
+ static void
+-bsmap_ass_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ass_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9479,7 +9478,7 @@ bsmap_ass_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.16
+  */
+ static void
+-bsmap_ass_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ass_complete(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9514,7 +9513,7 @@ bsmap_ass_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.17
+  */
+ static void
+-bsmap_ass_failure(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ass_failure(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9534,7 +9533,7 @@ bsmap_ass_failure(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.20
+  */
+ static void
+-bsmap_clr_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_clr_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9554,7 +9553,7 @@ bsmap_clr_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.21
+  */
+ static void
+-bsmap_clr_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_clr_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9574,7 +9573,7 @@ bsmap_clr_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.22
+  */
+ static void
+-bsmap_clr_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_clr_complete(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint8      consumed;
+     guint32     curr_offset;
+@@ -9594,7 +9593,7 @@ bsmap_clr_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.24
+  */
+ static void
+-dtap_alert_with_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_alert_with_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9614,7 +9613,7 @@ dtap_alert_with_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.28
+  */
+ static void
+-bsmap_bs_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bs_srvc_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9644,7 +9643,7 @@ bsmap_bs_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.2.29
+  */
+ static void
+-bsmap_bs_srvc_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bs_srvc_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9670,7 +9669,7 @@ bsmap_bs_srvc_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.1.19
+  */
+ static void
+-bsmap_add_srvc_noti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_add_srvc_noti(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9692,7 +9691,7 @@ bsmap_add_srvc_noti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.1.20
+  */
+ static void
+-dtap_add_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_add_srvc_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9726,7 +9725,7 @@ dtap_add_srvc_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.1.10
+  */
+ static void
+-dtap_connect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_connect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9744,7 +9743,7 @@ dtap_connect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.3.7
+  */
+ static void
+-dtap_flash_with_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_flash_with_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9776,7 +9775,7 @@ dtap_flash_with_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.3.8
+  */
+ static void
+-dtap_flash_with_info_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_flash_with_info_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9796,7 +9795,7 @@ dtap_flash_with_info_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
+  * IOS 6.1.3.9
+  */
+ static void
+-bsmap_feat_noti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_feat_noti(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9836,7 +9835,7 @@ bsmap_feat_noti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.3.10
+  */
+ static void
+-bsmap_feat_noti_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_feat_noti_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9856,7 +9855,7 @@ bsmap_feat_noti_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.3.11
+  */
+ static void
+-bsmap_paca_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_paca_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9876,7 +9875,7 @@ bsmap_paca_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.3.12
+  */
+ static void
+-bsmap_paca_command_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_paca_command_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9894,7 +9893,7 @@ bsmap_paca_command_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 6.1.3.13
+  */
+ static void
+-bsmap_paca_update(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_paca_update(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9932,7 +9931,7 @@ bsmap_paca_update(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.3.14
+  */
+ static void
+-bsmap_paca_update_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_paca_update_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9954,7 +9953,7 @@ bsmap_paca_update_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 5 3.2.9
+  */
+ static void
+-bsmap_rm_pos_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_rm_pos_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9972,7 +9971,7 @@ bsmap_rm_pos_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.2.10
+  */
+ static void
+-bsmap_rm_pos_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_rm_pos_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -9996,7 +9995,7 @@ bsmap_rm_pos_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.1
+  */
+ static void
+-bsmap_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_auth_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10027,7 +10026,7 @@ bsmap_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+ }
+ 
+ static void
+-dtap_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_auth_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10047,7 +10046,7 @@ dtap_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.2
+  */
+ static void
+-bsmap_auth_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_auth_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10074,7 +10073,7 @@ bsmap_auth_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * Section 3.1.21
+  */
+ static void
+-bsmap_bearer_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bearer_upd_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10095,7 +10094,7 @@ bsmap_bearer_upd_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * Section 3.1.22
+  */
+ static void
+-bsmap_bearer_upd_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bearer_upd_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10118,7 +10117,7 @@ bsmap_bearer_upd_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * Section 3.1.23
+  */
+ static void
+-bsmap_bearer_upd_reqd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bearer_upd_reqd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10137,7 +10136,7 @@ bsmap_bearer_upd_reqd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+ }
+ 
+ static void
+-dtap_auth_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_auth_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10155,7 +10154,7 @@ dtap_auth_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.3
+  */
+ static void
+-bsmap_user_zone_update(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_user_zone_update(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10173,7 +10172,7 @@ bsmap_user_zone_update(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 5 3.3.16
+  */
+ static void
+-dtap_user_zone_update_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_user_zone_update_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10191,7 +10190,7 @@ dtap_user_zone_update_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
+  * IOS 5 3.3.17
+  */
+ static void
+-dtap_user_zone_update(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_user_zone_update(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10209,7 +10208,7 @@ dtap_user_zone_update(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 5 3.3.18
+  */
+ static void
+-bsmap_user_zone_reject(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_user_zone_reject(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10241,7 +10240,7 @@ bsmap_user_zone_reject(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 5 3.3.18
+  */
+ static void
+-dtap_user_zone_reject(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_user_zone_reject(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10259,7 +10258,7 @@ dtap_user_zone_reject(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 5 3.3.19
+  */
+ static void
+-bsmap_reg_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_reg_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10289,7 +10288,7 @@ bsmap_reg_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.3.20
+  */
+ static void
+-bsmap_ms_reg_noti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ms_reg_noti(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10307,7 +10306,7 @@ bsmap_ms_reg_noti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.3.21
+  */
+ static void
+-bsmap_bs_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bs_auth_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10325,7 +10324,7 @@ bsmap_bs_auth_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.3.22
+  */
+ static void
+-bsmap_bs_auth_req_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_bs_auth_req_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10343,7 +10342,7 @@ bsmap_bs_auth_req_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.1.4.4
+  */
+ static void
+-dtap_ssd_update_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_ssd_update_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10361,7 +10360,7 @@ dtap_ssd_update_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.5
+  */
+ static void
+-dtap_bs_challenge(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_bs_challenge(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10379,7 +10378,7 @@ dtap_bs_challenge(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.6
+  */
+ static void
+-dtap_bs_challenge_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_bs_challenge_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10397,7 +10396,7 @@ dtap_bs_challenge_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
+  * IOS 6.1.4.7
+  */
+ static void
+-dtap_ssd_update_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_ssd_update_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10415,7 +10414,7 @@ dtap_ssd_update_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.8
+  */
+ static void
+-dtap_lu_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_lu_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10465,7 +10464,7 @@ dtap_lu_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.9
+  */
+ static void
+-dtap_lu_accept(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_lu_accept(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10496,7 +10495,7 @@ dtap_lu_accept(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.10
+  */
+ static void
+-dtap_lu_reject(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_lu_reject(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10523,7 +10522,7 @@ dtap_lu_reject(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.4.18
+  */
+ static void
+-bsmap_priv_mode_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_priv_mode_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10541,7 +10540,7 @@ bsmap_priv_mode_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
+  * IOS 6.1.4.19
+  */
+ static void
+-bsmap_priv_mode_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_priv_mode_complete(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10561,7 +10560,7 @@ bsmap_priv_mode_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
+  * IOS 5 3.3.14
+  */
+ static void
+-bsmap_status_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_status_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10599,7 +10598,7 @@ bsmap_status_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.3.14
+  */
+ static void
+-dtap_status_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_status_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10618,7 +10617,7 @@ dtap_status_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.3.15
+  */
+ static void
+-bsmap_status_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_status_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10644,7 +10643,7 @@ bsmap_status_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.3.15
+  */
+ static void
+-dtap_status_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_status_resp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10662,7 +10661,7 @@ dtap_status_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.4
+  */
+ static void
+-bsmap_ho_reqd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_reqd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10745,7 +10744,7 @@ bsmap_ho_reqd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.5
+  */
+ static void
+-bsmap_ho_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10839,7 +10838,7 @@ bsmap_ho_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.6
+  */
+ static void
+-bsmap_ho_req_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_req_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10888,7 +10887,7 @@ bsmap_ho_req_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.7
+  */
+ static void
+-bsmap_ho_failure(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_failure(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10906,7 +10905,7 @@ bsmap_ho_failure(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.8
+  */
+ static void
+-bsmap_ho_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10959,7 +10958,7 @@ bsmap_ho_command(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.4.6
+  */
+ static void
+-bsmap_ho_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_complete(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10977,7 +10976,7 @@ bsmap_ho_complete(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.9
+  */
+ static void
+-bsmap_ho_reqd_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_reqd_rej(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -10995,7 +10994,7 @@ bsmap_ho_reqd_rej(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.5.12
+  */
+ static void
+-bsmap_ho_performed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_ho_performed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11021,7 +11020,7 @@ bsmap_ho_performed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.2
+  */
+ static void
+-bsmap_block(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_block(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11043,7 +11042,7 @@ bsmap_block(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.3
+  */
+ static void
+-bsmap_block_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_block_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11061,7 +11060,7 @@ bsmap_block_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.4
+  */
+ static void
+-bsmap_unblock(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_unblock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11081,7 +11080,7 @@ bsmap_unblock(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.5
+  */
+ static void
+-bsmap_unblock_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_unblock_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11099,7 +11098,7 @@ bsmap_unblock_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.6
+  */
+ static void
+-bsmap_reset(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_reset(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11119,7 +11118,7 @@ bsmap_reset(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.7
+  */
+ static void
+-bsmap_reset_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_reset_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11137,7 +11136,7 @@ bsmap_reset_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.8
+  */
+ static void
+-bsmap_reset_cct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_reset_cct(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11159,7 +11158,7 @@ bsmap_reset_cct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.9
+  */
+ static void
+-bsmap_reset_cct_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_reset_cct_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11177,7 +11176,7 @@ bsmap_reset_cct_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.10
+  */
+ static void
+-bsmap_xmode_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_xmode_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11195,7 +11194,7 @@ bsmap_xmode_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.6.11
+  */
+ static void
+-bsmap_xmode_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_xmode_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11213,7 +11212,7 @@ bsmap_xmode_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.7.1
+  */
+ static void
+-bsmap_adds_page(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_adds_page(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11247,7 +11246,7 @@ bsmap_adds_page(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.7.2
+  */
+ static void
+-bsmap_adds_transfer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_adds_transfer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11301,7 +11300,7 @@ bsmap_adds_transfer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 5 3.6.4
+  */
+ static void
+-bsmap_adds_transfer_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_adds_transfer_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11323,7 +11322,7 @@ bsmap_adds_transfer_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
+  * IOS 6.1.7.3
+  */
+ static void
+-dtap_adds_deliver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_adds_deliver(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11345,7 +11344,7 @@ dtap_adds_deliver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.7.4
+  */
+ static void
+-bsmap_adds_page_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_adds_page_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11373,7 +11372,7 @@ bsmap_adds_page_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+  * IOS 6.1.7.5
+  */
+ static void
+-dtap_adds_deliver_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_adds_deliver_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11393,7 +11392,7 @@ dtap_adds_deliver_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
+  * IOS 6.1.8.1
+  */
+ static void
+-bsmap_rejection(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++bsmap_rejection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11414,7 +11413,7 @@ bsmap_rejection(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+ }
+ 
+ static void
+-dtap_rejection(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
++dtap_rejection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len)
+ {
+     guint32     curr_offset;
+     guint32     consumed;
+@@ -11437,7 +11436,7 @@ dtap_rejection(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+ #define ANSI_A_IOS401_BSMAP_NUM_MSG (sizeof(ansi_a_ios401_bsmap_strings)/sizeof(ext_value_string_t))
+ #define ANSI_A_IOS501_BSMAP_NUM_MSG (sizeof(ansi_a_ios501_bsmap_strings)/sizeof(ext_value_string_t))
+ static gint ett_bsmap_msg[MAX(ANSI_A_IOS401_BSMAP_NUM_MSG, ANSI_A_IOS501_BSMAP_NUM_MSG)];
+-static void (*bsmap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) =
++static void (*bsmap_msg_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len) =
+ {
+     bsmap_add_srvc_noti,        /* Additional Service Notification */
+     bsmap_adds_page,    /* ADDS Page */
+@@ -11507,7 +11506,7 @@ static void (*bsmap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
+ #define ANSI_A_IOS401_DTAP_NUM_MSG (sizeof(ansi_a_ios401_dtap_strings)/sizeof(ext_value_string_t))
+ #define ANSI_A_IOS501_DTAP_NUM_MSG (sizeof(ansi_a_ios501_dtap_strings)/sizeof(ext_value_string_t))
+ static gint ett_dtap_msg[MAX(ANSI_A_IOS401_DTAP_NUM_MSG, ANSI_A_IOS501_DTAP_NUM_MSG)];
+-static void (*dtap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) =
++static void (*dtap_msg_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len) =
+ {
+     dtap_add_srvc_req,  /* Additional Service Request */
+     dtap_adds_deliver,  /* ADDS Deliver */
+@@ -11626,7 +11625,6 @@ dissect_bsmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+     offset = 0;
+     saved_offset = offset;
+ 
+-    g_pinfo = pinfo;
+     g_tree = tree;
+ 
+     len = tvb_length(tvb);
+@@ -11693,7 +11691,7 @@ dissect_bsmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+     }
+     else
+     {
+-        (*bsmap_msg_fcn[dec_idx])(tvb, bsmap_tree, offset, len - offset);
++        (*bsmap_msg_fcn[dec_idx])(tvb, pinfo, bsmap_tree, offset, len - offset);
+     }
+ }
+ 
+@@ -11746,7 +11744,6 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+     offset = 0;
+     saved_offset = offset;
+ 
+-    g_pinfo = pinfo;
+     g_tree = tree;
+ 
+     /*
+@@ -11890,7 +11887,7 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+     }
+     else
+     {
+-        (*dtap_msg_fcn[dec_idx])(tvb, dtap_tree, offset, len - offset);
++        (*dtap_msg_fcn[dec_idx])(tvb, pinfo, dtap_tree, offset, len - offset);
+     }
+ }
+ 
+-- 
+1.7.2.5
+
diff -Nru wireshark-1.2.11/debian/patches/38_fix-from-1.4.12-ERF-crash.patch wireshark-1.2.11/debian/patches/38_fix-from-1.4.12-ERF-crash.patch
--- wireshark-1.2.11/debian/patches/38_fix-from-1.4.12-ERF-crash.patch	1970-01-01 01:00:00.000000000 +0100
+++ wireshark-1.2.11/debian/patches/38_fix-from-1.4.12-ERF-crash.patch	2012-05-19 13:25:48.000000000 +0200
@@ -0,0 +1,41 @@
+From 98a5209852842705883d0b89da1565648320488a Mon Sep 17 00:00:00 2001
+From: Jeff Morriss <jeff.morriss@ulticom.com>
+Date: Mon, 13 Feb 2012 03:03:03 +0000
+Subject: [PATCH 2/2] Fix the crash reported in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6804
+
+For WTAP_ENCAP_ERF files if we find an Extension and/or Multi-Channel header,
+ensure that the size of the full pseudoheader is smaller than the packet size
+to avoid an underflow and subsequent attempt to allocate a rather large amount
+of memory.
+
+svn path=/trunk/; revision=41008
+---
+ wiretap/pcap-common.c |   12 ++++++++++++
+ 1 files changed, 12 insertions(+), 0 deletions(-)
+
+diff --git a/wiretap/pcap-common.c b/wiretap/pcap-common.c
+index 492fe99..4f826e3 100644
+--- a/wiretap/pcap-common.c
++++ b/wiretap/pcap-common.c
+@@ -1336,6 +1336,18 @@ pcap_process_pseudo_header(FILE_T fh, int file_type, int wtap_encap, gboolean by
+ 			return -1;	/* Read error */
+ 
+ 		phdr_len += size;
++
++		if (check_packet_size &&
++		    packet_size < (guint)phdr_len) {
++			/*
++			 * Uh-oh, the packet isn't big enough for the pseudo-
++			 * header.
++			 */
++			*err = WTAP_ERR_BAD_RECORD;
++			*err_info = g_strdup_printf("pcap: ERF file has a %u-byte packet, too small for a pseudo-header with ex- and sub-headers (%d)",
++			    packet_size, phdr_len);
++			return -1;
++		}
+ 		break;
+ 
+ 	case WTAP_ENCAP_I2C:
+-- 
+1.7.2.5
+
diff -Nru wireshark-1.2.11/debian/patches/series wireshark-1.2.11/debian/patches/series
--- wireshark-1.2.11/debian/patches/series	2012-01-25 17:11:41.000000000 +0100
+++ wireshark-1.2.11/debian/patches/series	2012-05-19 13:26:46.000000000 +0200
@@ -29,4 +29,5 @@
 34_fixes-from-1.4.10.patch
 35_CVE-2011-3483.patch
 36_fixes-from-1.4.11.patch
-
+37_fix-from-1.4.12-Global-variables-considered-harmful.patch
+38_fix-from-1.4.12-ERF-crash.patch

Reply to: