[wireshark] Few bugfixes and enhancements
Peter Lemenkov
peter at fedoraproject.org
Sun Dec 8 09:27:37 UTC 2013
commit 61af307f0c859023b27d5c68b3efc1eaa7e44c4c
Author: Peter Lemenkov <lemenkov at gmail.com>
Date: Sun Dec 8 13:25:19 2013 +0400
Few bugfixes and enhancements
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
...Load-correct-shared-object-name-in-python.patch | 4 +-
...Lemenkov-via-https-bugs.wireshark.org-bug.patch | 80 +++++-
...shark-0015-Add-expert-info-about-timeouts.patch | 84 ------
...Jagdmann-Make-sure-err_str-is-initialized.patch | 19 ++
...selecting-Decode-As-based-on-SCTP-PPID.-B.patch | 32 +++
...ugs.wireshark.org-bugzilla-show_bug.cgi-i.patch | 295 ++++++++++++++++++++
wireshark.spec | 31 ++-
7 files changed, 444 insertions(+), 101 deletions(-)
---
diff --git a/wireshark-0003-Load-correct-shared-object-name-in-python.patch b/wireshark-0003-Load-correct-shared-object-name-in-python.patch
index b028ed8..0d05e05 100644
--- a/wireshark-0003-Load-correct-shared-object-name-in-python.patch
+++ b/wireshark-0003-Load-correct-shared-object-name-in-python.patch
@@ -7,7 +7,7 @@ was not installed:
libwireshark.so: cannot open shared object file: No such file or directory
diff --git a/epan/wspython/wspy_libws.py b/epan/wspython/wspy_libws.py
-index a293a17..73ce012 100755
+index a293a17..0c528e4 100755
--- a/epan/wspython/wspy_libws.py
+++ b/epan/wspython/wspy_libws.py
@@ -35,7 +35,7 @@ def get_libws_libname():
@@ -15,7 +15,7 @@ index a293a17..73ce012 100755
return 'libwireshark.dll'
else:
- return 'libwireshark.so'
-+ return 'libwireshark.so.2'
++ return 'libwireshark.so.3'
def get_libws_handle():
global __libwireshark
diff --git a/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch b/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
index 6d61ce0..13ff90e 100644
--- a/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
+++ b/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
@@ -1,7 +1,8 @@
From: Evan Huus <eapache at gmail.com>
Date: Sun, 18 Aug 2013 19:49:08 +0000
-Subject: [PATCH] From Peter Lemenkov via
- https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8326
+Subject: [PATCH] Dissector for the Sippy RTPproxy controlling protocol
+
+From Peter Lemenkov via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8326
Dissector for the Sippy RTPproxy controlling protocol. RTPproxy is a well-known
(among SIP-engineers) application and it operates using its own simple
@@ -129,6 +130,30 @@ Reinitialize counter between loops to avoid an out of bound access found with fu
svn path=/trunk/; revision=53612
+RTPproxy dissector: Add expert info about timeouts. Bug 9484 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9484)
+
+From Peter Lemenkov
+
+svn path=/trunk/; revision=53622
+
+From Peter Lemenkov via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9487 :
+Use RTP payload descriptions from RTP dissector in RTPproxy codec param value
+
+svn path=/trunk/; revision=53658
+
+From Peter Lemenkov via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9490 :
+Couple packets in RTPproxy dissector not only with CookieID but also with Call-IDs
+
+svn path=/trunk/; revision=53673
+
+Fix Coverity CID 1134045: Printf format string issue. (As documented in the printf man page for the ' option, "Note that many versions of gcc(1) cannot parse this option and will issue a warning." (r47940 reverted a similar change, so this keeps things consistent.)
+
+svn path=/trunk/; revision=53705
+
+Clean up indentation.
+
+svn path=/trunk/; revision=53742
+
diff --git a/AUTHORS b/AUTHORS
index 10782b0..e7b3c18 100644
--- a/AUTHORS
@@ -167,10 +192,10 @@ index 937f522..73217d7 100644
packet-rudp.c \
diff --git a/epan/dissectors/packet-rtpproxy.c b/epan/dissectors/packet-rtpproxy.c
new file mode 100644
-index 0000000..831448b
+index 0000000..1a80ee7
--- /dev/null
+++ b/epan/dissectors/packet-rtpproxy.c
-@@ -0,0 +1,1350 @@
+@@ -0,0 +1,1387 @@
+/* packet-rtpproxy.c
+ * RTPproxy command protocol dissector
+ * Copyright 2013, Peter Lemenkov <lemenkov at gmail.com>
@@ -210,6 +235,8 @@ index 0000000..831448b
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/conversation.h>
++#include <epan/expert.h>
++#include <epan/rtp_pt.h>
+
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
@@ -272,6 +299,7 @@ index 0000000..831448b
+ guint32 req_frame;
+ guint32 resp_frame;
+ nstime_t req_time;
++ gchar* callid;
+} rtpproxy_info_t;
+
+static dissector_handle_t rtcp_handle;
@@ -421,9 +449,14 @@ index 0000000..831448b
+
+static gint ett_rtpproxy_reply = -1;
+
++/* Default values */
+static guint rtpproxy_tcp_port = 22222;
+static guint rtpproxy_udp_port = 22222;
+static gboolean rtpproxy_establish_conversation = TRUE;
++/* See - http://www.opensips.org/html/docs/modules/1.11.x/rtpproxy.html#id250018 */
++/* See - http://www.kamailio.org/docs/modules/devel/modules/rtpproxy.html#idm448 */
++static guint rtpproxy_timeout = 1000;
++static nstime_t rtpproxy_timeout_ns = {1, 0};
+
+void proto_reg_handoff_rtpproxy(void);
+
@@ -492,7 +525,8 @@ index 0000000..831448b
+ while(codecs[i]){
+ /* We assume strings < 2^32-1 bytes long. :-) */
+ codec_len = (guint)strlen(codecs[i]);
-+ proto_tree_add_item(another_tree, hf_rtpproxy_command_parameter_codec, tvb, begin+offset, codec_len, ENC_ASCII | ENC_NA);
++ ti = proto_tree_add_item(another_tree, hf_rtpproxy_command_parameter_codec, tvb, begin+offset, codec_len, ENC_ASCII | ENC_NA);
++ proto_item_append_text(ti, " (%s)", val_to_str_ext((guint)strtoul(tvb_format_text(tvb,begin+offset,codec_len),NULL,10), &rtp_payload_type_vals_ext, "Unknown"));
+ offset += codec_len;
+ if(codecs[i+1])
+ offset++; /* skip comma */
@@ -542,7 +576,8 @@ index 0000000..831448b
+ case 't':
+ new_offset = (gint)strspn(rawstr+offset, "0123456789");
+ another_tree = proto_item_add_subtree(ti, ett_rtpproxy_command_parameters_transcode);
-+ proto_tree_add_item(another_tree, hf_rtpproxy_command_parameter_transcode, tvb, begin+offset, new_offset, ENC_ASCII | ENC_NA);
++ ti = proto_tree_add_item(another_tree, hf_rtpproxy_command_parameter_transcode, tvb, begin+offset, new_offset, ENC_ASCII | ENC_NA);
++ proto_item_append_text(ti, " (%s)", val_to_str_ext((guint)strtoul(tvb_format_text(tvb,begin+offset, new_offset),NULL,10), &rtp_payload_type_vals_ext, "Unknown"));
+ offset += new_offset;
+ break;
+ case 'v':
@@ -556,7 +591,7 @@ index 0000000..831448b
+ }
+}
+
-+void
++rtpproxy_info_t *
+rtpproxy_add_tid(gboolean is_request, tvbuff_t *tvb, packet_info *pinfo, proto_tree *rtpproxy_tree, rtpproxy_conv_info_t *rtpproxy_conv, gchar* cookie)
+{
+ rtpproxy_info_t *rtpproxy_info;
@@ -568,6 +603,7 @@ index 0000000..831448b
+ rtpproxy_info->req_frame = PINFO_FD_NUM(pinfo);
+ rtpproxy_info->resp_frame = 0;
+ rtpproxy_info->req_time = pinfo->fd->abs_ts;
++ rtpproxy_info->callid = NULL;
+ se_tree_insert_string(rtpproxy_conv->trans, cookie, rtpproxy_info, 0);
+ } else {
+ rtpproxy_info = (rtpproxy_info_t *)se_tree_lookup_string(rtpproxy_conv->trans, cookie, 0);
@@ -588,9 +624,13 @@ index 0000000..831448b
+ nstime_delta(&ns, &pinfo->fd->abs_ts, &rtpproxy_info->req_time);
+ pi = proto_tree_add_time(rtpproxy_tree, hf_rtpproxy_response_time, tvb, 0, 0, &ns);
+ PROTO_ITEM_SET_GENERATED(pi);
++ if (nstime_cmp(&rtpproxy_timeout_ns, &ns) < 0)
++ expert_add_info_format(pinfo, rtpproxy_tree, PI_RESPONSE_CODE, PI_WARN, "Response timeout %.3f seconds", nstime_to_sec(&ns));
+ }
+ }
+ }
++ /* Could be NULL so we should check it before dereferencing */
++ return rtpproxy_info;
+}
+
+void
@@ -644,6 +684,7 @@ index 0000000..831448b
+ address addr;
+ guint16 port;
+ guint32 ipaddr[4];
++ rtpproxy_info_t *rtpproxy_info = NULL;
+
+ /* If it does not start with a printable character it's not RTPProxy */
+ if(!isprint(tvb_get_guint8(tvb, 0)))
@@ -669,6 +710,7 @@ index 0000000..831448b
+ /* Calculate size to prevent recalculation in the future */
+ realsize = tvb_reported_length(tvb);
+
++
+ /* Check for LF (required for TCP connection, optional for UDP) */
+ if (tvb_get_guint8(tvb, realsize - 1) == '\n'){
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RTPproxy");
@@ -679,6 +721,7 @@ index 0000000..831448b
+ else
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RTPproxy (no LF)");
+
++
+ /* Try to create conversation */
+ conversation = find_or_create_conversation(pinfo);
+ rtpproxy_conv = (rtpproxy_conv_info_t *)conversation_get_proto_data(conversation, proto_rtpproxy);
@@ -717,7 +760,7 @@ index 0000000..831448b
+ case 'r':
+ case 'c':
+ case 'q':
-+ rtpproxy_add_tid(TRUE, tvb, pinfo, rtpproxy_tree, rtpproxy_conv, cookie);
++ rtpproxy_info = rtpproxy_add_tid(TRUE, tvb, pinfo, rtpproxy_tree, rtpproxy_conv, cookie);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Request: %s", rawstr);
+ ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_request, tvb, offset, -1, ENC_NA);
+ rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_request);
@@ -764,6 +807,8 @@ index 0000000..831448b
+ /* Extract Call-ID */
+ new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
+ proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_callid, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++ if(rtpproxy_info && !rtpproxy_info->callid)
++ rtpproxy_info->callid = tvb_get_ephemeral_string(tvb, offset, new_offset - offset);
+ /* Skip whitespace */
+ offset = tvb_skip_wsp(tvb, new_offset+1, -1);
+
@@ -856,7 +901,7 @@ index 0000000..831448b
+ case '7':
+ case '8':
+ case '9':
-+ rtpproxy_add_tid(FALSE, tvb, pinfo, rtpproxy_tree, rtpproxy_conv, cookie);
++ rtpproxy_info = rtpproxy_add_tid(FALSE, tvb, pinfo, rtpproxy_tree, rtpproxy_conv, cookie);
+ if (tmp == 'e')
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Error reply: %s", rawstr);
+ else
@@ -865,6 +910,11 @@ index 0000000..831448b
+ ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_reply, tvb, offset, -1, ENC_NA);
+ rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_reply);
+
++ if(rtpproxy_info && rtpproxy_info->callid){
++ ti = proto_tree_add_string(rtpproxy_tree, hf_rtpproxy_callid, tvb, offset, 0, rtpproxy_info->callid);
++ PROTO_ITEM_SET_GENERATED(ti);
++ }
++
+ if (tmp == 'e'){
+ tmp = tvb_find_line_end(tvb, offset, -1, &new_offset, FALSE);
+ tmpstr = tvb_get_ephemeral_string(tvb, offset, tmp);
@@ -1456,6 +1506,7 @@ index 0000000..831448b
+ proto_register_subtree_array(ett, array_length(ett));
+
+ rtpproxy_module = prefs_register_protocol(proto_rtpproxy, proto_reg_handoff_rtpproxy);
++
+ prefs_register_uint_preference(rtpproxy_module, "tcp.port",
+ "RTPproxy TCP Port", /* Title */
+ "RTPproxy TCP Port", /* Descr */
@@ -1467,11 +1518,18 @@ index 0000000..831448b
+ "RTPproxy UDP Port", /* Descr */
+ 10,
+ &rtpproxy_udp_port);
++
+ prefs_register_bool_preference(rtpproxy_module, "establish_conversation",
+ "Establish Media Conversation",
+ "Specifies that RTP/RTCP/T.38/MSRP/etc streams are decoded based "
+ "upon port numbers found in RTPproxy answers",
+ &rtpproxy_establish_conversation);
++
++ prefs_register_uint_preference(rtpproxy_module, "reply.timeout",
++ "RTPproxy reply timeout", /* Title */
++ "Maximum timeout value in waiting for reply from RTPProxy (in milliseconds).", /* Descr */
++ 10,
++ &rtpproxy_timeout);
+}
+
+void
@@ -1507,6 +1565,10 @@ index 0000000..831448b
+ rtcp_handle = find_dissector("rtcp");
+ rtp_events_handle = find_dissector("rtpevent");
+ rtp_handle = find_dissector("rtp");
++
++ /* Calculate nstime_t struct for the timeout from the rtpproxy_timeout value in milliseconds */
++ rtpproxy_timeout_ns.secs = (rtpproxy_timeout - rtpproxy_timeout % 1000) / 1000;
++ rtpproxy_timeout_ns.nsecs = (rtpproxy_timeout % 1000) * 1000;
+}
+
+/*
diff --git a/wireshark-0015-From-Dirk-Jagdmann-Make-sure-err_str-is-initialized.patch b/wireshark-0015-From-Dirk-Jagdmann-Make-sure-err_str-is-initialized.patch
new file mode 100644
index 0000000..2a11c80
--- /dev/null
+++ b/wireshark-0015-From-Dirk-Jagdmann-Make-sure-err_str-is-initialized.patch
@@ -0,0 +1,19 @@
+From: Gerald Combs <gerald at wireshark.org>
+Date: Fri, 15 Nov 2013 23:16:14 +0000
+Subject: [PATCH] From Dirk Jagdmann: Make sure err_str is initialized.
+
+svn path=/trunk-1.10/; revision=53348
+
+diff --git a/ui/gtk/main_welcome.c b/ui/gtk/main_welcome.c
+index 6de0fea..017f2e4 100644
+--- a/ui/gtk/main_welcome.c
++++ b/ui/gtk/main_welcome.c
+@@ -981,7 +981,7 @@ static void fill_capture_box(void)
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+ int error = 0;
+- gchar *label_text, *err_str;
++ gchar *label_text = NULL, *err_str = NULL;
+ #ifdef _WIN32
+ DWORD reg_ret;
+ DWORD chimney_enabled = 0;
diff --git a/wireshark-0016-Crash-when-selecting-Decode-As-based-on-SCTP-PPID.-B.patch b/wireshark-0016-Crash-when-selecting-Decode-As-based-on-SCTP-PPID.-B.patch
new file mode 100644
index 0000000..48114ea
--- /dev/null
+++ b/wireshark-0016-Crash-when-selecting-Decode-As-based-on-SCTP-PPID.-B.patch
@@ -0,0 +1,32 @@
+From: Michael Mann <mmann78 at netscape.net>
+Date: Thu, 28 Nov 2013 16:51:08 +0000
+Subject: [PATCH] Crash when selecting "Decode As" based on SCTP PPID. Bug
+ 8976 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8976)
+
+Fixed by defaulting PPID value to LAST_PPID (which should make Decode As a no-op)
+
+svn path=/trunk-1.10/; revision=53627
+
+diff --git a/ui/gtk/decode_as_dlg.c b/ui/gtk/decode_as_dlg.c
+index e772099..4e863f1 100644
+--- a/ui/gtk/decode_as_dlg.c
++++ b/ui/gtk/decode_as_dlg.c
+@@ -970,7 +970,7 @@ decode_transport(GtkWidget *notebook_pg)
+ gchar *table_name;
+ gint requested_srcdst, requested_port, ppid;
+ gpointer portp;
+- gpointer ptr;
++ gpointer ptr = GUINT_TO_POINTER(LAST_PPID);
+ #ifdef DEBUG
+ gchar *string;
+ #endif
+@@ -980,8 +980,7 @@ decode_transport(GtkWidget *notebook_pg)
+ gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(list)));
+
+ combo_box = (GtkWidget *)g_object_get_data(G_OBJECT(notebook_pg), E_COMBO_BOX_SRCDST);
+- if (!ws_combo_box_get_active_pointer(GTK_COMBO_BOX(combo_box), &ptr))
+- g_assert_not_reached(); /* Programming error if no active item in combo_box */
++ ws_combo_box_get_active_pointer(GTK_COMBO_BOX(combo_box), &ptr);
+ requested_srcdst = GPOINTER_TO_INT(ptr);
+
+ #ifdef DEBUG
diff --git a/wireshark-0017-Fix-https-bugs.wireshark.org-bugzilla-show_bug.cgi-i.patch b/wireshark-0017-Fix-https-bugs.wireshark.org-bugzilla-show_bug.cgi-i.patch
new file mode 100644
index 0000000..2a7832f
--- /dev/null
+++ b/wireshark-0017-Fix-https-bugs.wireshark.org-bugzilla-show_bug.cgi-i.patch
@@ -0,0 +1,295 @@
+From: Pascal Quantin <pascal.quantin at gmail.com>
+Date: Fri, 6 Dec 2013 07:14:45 +0000
+Subject: [PATCH] Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9488
+ : Remove global gpinfo variable and use pinfo directly (backport of r49145)
+
+svn path=/trunk-1.10/; revision=53803
+
+diff --git a/epan/dissectors/packet-bssgp.c b/epan/dissectors/packet-bssgp.c
+index a89e970..0421cae 100644
+--- a/epan/dissectors/packet-bssgp.c
++++ b/epan/dissectors/packet-bssgp.c
+@@ -79,7 +79,6 @@ void proto_reg_handoff_bssgp(void);
+ static int bssgp_decode_nri = 0;
+ static guint bssgp_nri_length = 4;
+
+-static packet_info *gpinfo;
+ static guint8 g_pdu_type, g_rim_application_identity;
+ static proto_tree *gparent_tree;
+ static dissector_handle_t llc_handle;
+@@ -898,7 +897,7 @@ de_bssgp_flush_action(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
+ */
+
+ static guint16
+-de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *next_tvb=NULL;
+ guint32 curr_offset;
+@@ -912,10 +911,10 @@ de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
+
+ if(next_tvb){
+ if (llc_handle) {
+- call_dissector(llc_handle, next_tvb, gpinfo, gparent_tree);
++ call_dissector(llc_handle, next_tvb, pinfo, gparent_tree);
+ }
+ else if (data_handle) {
+- call_dissector(data_handle, next_tvb, gpinfo, gparent_tree);
++ call_dissector(data_handle, next_tvb, pinfo, gparent_tree);
+ }
+ }
+
+@@ -1100,7 +1099,7 @@ static const value_string bssgp_precedence_dl[] = {
+ };
+
+ static guint16
+-de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ proto_item *pi, *pre_item;
+ guint32 curr_offset;
+@@ -1113,7 +1112,7 @@ de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
+ /* octet 3-4 Peak bit rate provided by the network (note)
+ * NOTE: The bit rate 0 (zero) shall mean "best effort" in this IE.
+ */
+- link_dir = gpinfo->link_dir;
++ link_dir = pinfo->link_dir;
+
+ peak_bit_rate = tvb_get_ntohs(tvb, curr_offset);
+ pi = proto_tree_add_text(tree, tvb, curr_offset, 1, "Peak bit rate: ");
+@@ -1515,7 +1514,7 @@ de_bssgp_serv_utran_cco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+ * 11.3.48 NSEI (Network Service Entity Identifier)
+ */
+ static guint16
+-de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ guint32 curr_offset;
+ guint16 nsei;
+@@ -1526,7 +1525,7 @@ de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
+ proto_tree_add_item(tree, hf_bssgp_nsei, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
+ curr_offset+=2;
+
+- col_append_sep_fstr(gpinfo->cinfo, COL_INFO, BSSGP_SEP, "NSEI %u", nsei);
++ col_append_sep_fstr(pinfo->cinfo, COL_INFO, BSSGP_SEP, "NSEI %u", nsei);
+
+
+ return(curr_offset-offset);
+@@ -1535,7 +1534,7 @@ de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
+ * 11.3.49 RRLP APDU
+ */
+ static guint16
+-de_bssgp_rrlp_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_rrlp_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *next_tvb=NULL;
+ guint32 curr_offset;
+@@ -1555,9 +1554,9 @@ de_bssgp_rrlp_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
+
+ if(next_tvb){
+ if (rrlp_handle) {
+- call_dissector(rrlp_handle, next_tvb, gpinfo, gparent_tree);
++ call_dissector(rrlp_handle, next_tvb, pinfo, gparent_tree);
+ }else if (data_handle) {
+- call_dissector(data_handle, next_tvb, gpinfo, gparent_tree);
++ call_dissector(data_handle, next_tvb, pinfo, gparent_tree);
+ }
+ }
+ return(len);
+@@ -1748,7 +1747,7 @@ de_bssgp_ran_information_request_app_cont(tvbuff_t *tvb, proto_tree *tree, packe
+ {
+ asn1_ctx_t asn1_ctx;
+
+- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, gpinfo);
++ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ /* 11.3.63.1.4 RAN-INFORMATION-REQUEST Application Container for the SON Transfer Application */
+ /* Reporting Cell Identifier */
+ /* convert to bit offset */
+@@ -1765,7 +1764,7 @@ de_bssgp_ran_information_request_app_cont(tvbuff_t *tvb, proto_tree *tree, packe
+ * 3GPP TS 25.413
+ */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- curr_offset = curr_offset + dissect_ranap_SourceCellID_PDU(new_tvb, gpinfo, tree, NULL);
++ curr_offset = curr_offset + dissect_ranap_SourceCellID_PDU(new_tvb, pinfo, tree, NULL);
+ break;
+ default :
+ proto_tree_add_text(tree, tvb, curr_offset, len, "Unknown RIM Application Identity");
+@@ -1847,7 +1846,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, packet_i
+ if (msg_fcn_p == NULL){
+ proto_tree_add_text(si_tree, tvb, curr_offset, 21, "Unknown SI message");
+ }else{
+- (*msg_fcn_p)(tvb, si_tree, gpinfo, curr_offset+1, 20);
++ (*msg_fcn_p)(tvb, si_tree, pinfo, curr_offset+1, 20);
+ }
+ curr_offset+=21;
+ }
+@@ -1895,14 +1894,14 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, packet_i
+ * Source Cell ID) as defined in 3GPP TS 25.413
+ */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- curr_offset = curr_offset + dissect_ranap_SourceCellID_PDU(new_tvb, gpinfo, tree, NULL);
++ curr_offset = curr_offset + dissect_ranap_SourceCellID_PDU(new_tvb, pinfo, tree, NULL);
+ break;
+ case 2:
+ /* If the RAT discriminator field indicates E-UTRAN, this field is encoded as the E-UTRAN CGI IE as
+ * defined in 3GPP TS 36.413
+ */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- curr_offset = curr_offset + dissect_s1ap_Global_ENB_ID_PDU(new_tvb, gpinfo, tree, NULL);
++ curr_offset = curr_offset + dissect_s1ap_Global_ENB_ID_PDU(new_tvb, pinfo, tree, NULL);
+ break;
+ default:
+ break;
+@@ -1916,7 +1915,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, packet_i
+ * (UTRAN Source Cell ID) as defined in 3GPP TS 25.413
+ */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- curr_offset = curr_offset + dissect_ranap_SourceCellID_PDU(new_tvb, gpinfo, tree, NULL);
++ curr_offset = curr_offset + dissect_ranap_SourceCellID_PDU(new_tvb, pinfo, tree, NULL);
+ /* Octet (m+1)-n UTRA SI Container
+ * UTRA SI Container: This field contains System Information Container valid for the reporting cell
+ * encoded as defined in TS 25.331
+@@ -1972,7 +1971,7 @@ static const value_string bssgp_utra_si_cause_vals[] = {
+ };
+
+ static guint16
+-de_bssgp_ran_app_error_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_ran_app_error_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *new_tvb = NULL;
+ guint32 curr_offset;
+@@ -2018,7 +2017,7 @@ de_bssgp_ran_app_error_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
+ * The "SON Transfer Cause" field is encoded as the SON Transfer Cause IE as defined in 3GPP TS 36.413
+ */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- curr_offset = curr_offset + dissect_s1ap_SONtransferCause_PDU(new_tvb, gpinfo, tree, NULL);
++ curr_offset = curr_offset + dissect_s1ap_SONtransferCause_PDU(new_tvb, pinfo, tree, NULL);
+ /* Erroneous Application Container including IEI and LI */
+ proto_tree_add_text(tree, tvb, curr_offset, len-(curr_offset-offset), "Erroneous Application Container including IEI and LI");
+ break;
+@@ -2212,7 +2211,7 @@ static const value_string bssgp_ra_discriminator_vals[] = {
+ };
+
+ static guint16
+-de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ guint8 oct;
+ guint16 rnc_id;
+@@ -2261,7 +2260,7 @@ de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
+ curr_offset = curr_offset+ de_emm_trac_area_id(tvb, tree, pinfo, curr_offset, 5, add_string, string_len);
+ /* Octets 9-n contain the Global eNB ID (see 3GPP TS 36.413 [36]) of the eNodeB. */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- dissect_s1ap_Global_ENB_ID_PDU(new_tvb, gpinfo, tree, NULL);
++ dissect_s1ap_Global_ENB_ID_PDU(new_tvb, pinfo, tree, NULL);
+ break;
+ default:
+ proto_tree_add_text(tree, tvb, curr_offset, 3, "Unknown RIM Routing Address discriminator");
+@@ -2301,7 +2300,7 @@ de_bssgp_mbms_session_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
+ * 11.3.72 MBMS Session Duration
+ */
+ static guint16
+-de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *new_tvb;
+ guint32 curr_offset;
+@@ -2310,7 +2309,7 @@ de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
+
+ /* AVP Code: 904 MBMS-Session-Duration Registered by packet-gtp.c */
+ new_tvb =tvb_new_subset(tvb, offset, len, len);
+- dissector_try_uint(diameter_3gpp_avp_dissector_table, 904, new_tvb, gpinfo, tree);
++ dissector_try_uint(diameter_3gpp_avp_dissector_table, 904, new_tvb, pinfo, tree);
+
+ return(curr_offset-offset);
+ }
+@@ -2322,7 +2321,7 @@ de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
+ *
+ */
+ static guint16
+-de_bssgp_mbms_sai_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
++de_bssgp_mbms_sai_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *new_tvb;
+ guint32 curr_offset;
+@@ -2331,7 +2330,7 @@ de_bssgp_mbms_sai_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+
+ /* AVP Code: 903 MBMS-Service-Area Registered by packet-gtp.c */
+ new_tvb =tvb_new_subset(tvb, offset, len, len);
+- dissector_try_uint(diameter_3gpp_avp_dissector_table, 903, new_tvb, gpinfo, tree);
++ dissector_try_uint(diameter_3gpp_avp_dissector_table, 903, new_tvb, pinfo, tree);
+
+ return(curr_offset-offset);
+ }
+@@ -2840,7 +2839,7 @@ de_bssgp_mbms_session_rep_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
+ * 11.3.94 Inter RAT Handover Info
+ */
+ static guint16
+-de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *new_tvb;
+ guint32 curr_offset;
+@@ -2852,7 +2851,7 @@ de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
+ * Inter RAT Handover Information coded as specified in 3GPP
+ * Technical Specification 25.331
+ */
+- dissect_rrc_InterRATHandoverInfo_PDU(new_tvb, gpinfo, tree, NULL);
++ dissect_rrc_InterRATHandoverInfo_PDU(new_tvb, pinfo, tree, NULL);
+
+ return(len);
+ }
+@@ -3096,7 +3095,7 @@ de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
+
+ /* Octets 8-n contain the Global eNB ID (see 3GPP TS 36.413) of the eNodeB. */
+ new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
+- dissect_s1ap_Global_ENB_ID_PDU(new_tvb, gpinfo, tree, NULL);
++ dissect_s1ap_Global_ENB_ID_PDU(new_tvb, pinfo, tree, NULL);
+
+ return(len);
+ }
+@@ -3104,7 +3103,7 @@ de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
+ * 11.3.104 E-UTRAN Inter RAT Handover Info
+ */
+ static guint16
+-de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *new_tvb;
+ guint32 curr_offset;
+@@ -3118,7 +3117,7 @@ de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info
+ * significant bit of the first octet of the octet string contains bit 8 of
+ * the first octet of the IE.
+ */
+- dissect_lte_rrc_UE_EUTRA_Capability_PDU(new_tvb, gpinfo, tree, NULL);
++ dissect_lte_rrc_UE_EUTRA_Capability_PDU(new_tvb, pinfo, tree, NULL);
+
+ return(len);
+ }
+@@ -3181,7 +3180,7 @@ de_bssgp_reliable_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, packet_info
+ * 11.3.108 SON Transfer Application Identity
+ */
+ static guint16
+-de_bssgp_son_transfer_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset _U_, guint len _U_, gchar *add_string _U_, int string_len _U_)
++de_bssgp_son_transfer_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset _U_, guint len _U_, gchar *add_string _U_, int string_len _U_)
+ {
+ tvbuff_t *next_tvb;
+
+@@ -3190,7 +3189,7 @@ de_bssgp_son_transfer_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
+ */
+ if(len > 0){
+ next_tvb = tvb_new_subset(tvb, offset, len, len);
+- dissect_s1ap_SONtransferApplicationIdentity_PDU(next_tvb, gpinfo, tree, NULL);
++ dissect_s1ap_SONtransferApplicationIdentity_PDU(next_tvb, pinfo, tree, NULL);
+ }
+
+ return(len);
+@@ -6370,8 +6369,6 @@ dissect_bssgp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+ int hf_idx;
+ void (*msg_fcn_p)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len);
+
+- /* Save pinfo */
+- gpinfo = pinfo;
+ g_rim_application_identity = 0;
+ gparent_tree = tree;
+ len = tvb_length(tvb);
diff --git a/wireshark.spec b/wireshark.spec
index fc1172b..e2e9413 100644
--- a/wireshark.spec
+++ b/wireshark.spec
@@ -21,7 +21,7 @@
Summary: Network traffic analyzer
Name: wireshark
Version: 1.10.3
-Release: 5%{?dist}
+Release: 6%{?dist}
License: GPL+
Group: Applications/Internet
Source0: http://wireshark.org/download/src/%{name}-%{version}.tar.bz2
@@ -31,7 +31,9 @@ Patch1: wireshark-0001-enable-Lua-support.patch
Patch2: wireshark-0002-Customize-permission-denied-error.patch
# Fedora-specific
Patch3: wireshark-0003-Load-correct-shared-object-name-in-python.patch
+# No longer necessary - will be removed in the next release (1.12.x)
Patch4: wireshark-0004-fix-documentation-build-error.patch
+# Will be proposed upstream
Patch5: wireshark-0005-fix-string-overrun-in-plugins-profinet.patch
# Backported from upstream. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8326
Patch6: wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
@@ -51,9 +53,12 @@ Patch12: wireshark-0012-move-default-temporary-directory-to-var-tmp.patch
Patch13: wireshark-0013-Copy-over-r49999-from-trunk.patch
# Backported from upstream.
Patch14: wireshark-0014-Fix-https-bugs.wireshark.org-bugzilla-show_bug.cgi-i.patch
-# Backported to 1.10.x from the patch from this ticket:
-# https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9484
-Patch15: wireshark-0015-Add-expert-info-about-timeouts.patch
+# Backported from upstream.
+Patch15: wireshark-0015-From-Dirk-Jagdmann-Make-sure-err_str-is-initialized.patch
+# Backported from upstream.
+Patch16: wireshark-0016-Crash-when-selecting-Decode-As-based-on-SCTP-PPID.-B.patch
+# Backported from upstream.
+Patch17: wireshark-0017-Fix-https-bugs.wireshark.org-bugzilla-show_bug.cgi-i.patch
Url: http://www.wireshark.org/
BuildRequires: libpcap-devel >= 0.9
@@ -151,7 +156,7 @@ and plugins.
%patch2 -p1 -b .perm_denied_customization
%patch3 -p1 -b .soname
-%patch4 -p1 -b .pod2man
+#%patch4 -p1 -b .pod2man
%patch5 -p1 -b .profinet_crash
%patch6 -p1 -b .rtpproxy
%patch7 -p1 -b .openflow
@@ -162,7 +167,9 @@ and plugins.
%patch12 -p1 -b .tmp_dir
%patch13 -p1 -b .allow_64kpackets_for_usb
%patch14 -p1 -b .dont_die_during_sip_dissection
-%patch15 -p1 -b .add_expert_info_about_rtpproxy
+%patch15 -p1 -b .fix_main_window
+%patch16 -p1 -b .fix_sctp
+%patch17 -p1 -b .fix_global_pinfo
%build
%ifarch s390 s390x sparcv9 sparc64
@@ -350,13 +357,25 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files devel
%doc doc/README.*
+%if %{with_lua}
%config(noreplace) %{_datadir}/wireshark/init.lua
+%endif
%{_includedir}/wireshark
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*
%{_datadir}/aclocal/*
%changelog
+* Fri Dec 06 2013 Peter Lemenkov <lemenkov at gmail.com> - 1.10.3-6
+- Updated RTPproxy dissector (again), squashed patch no. 15 (applied upstream).
+- Use proper soname in the python scripts
+- Don't apply no longer needed fix for pod2man.
+- Fix for main window. See patch no. 15
+- Fix for SCTP dissection. See patch no. 16
+- Fix for rare issue in Base Station Subsystem GPRS Protocol dissection. See
+ patch no. 17
+- Fix building w/o Lua
+
* Wed Nov 27 2013 Peter Lemenkov <lemenkov at gmail.com> - 1.10.3-5
- Updated RTPproxy dissector (again)
- Allow packets more than 64k (for USB capture). See patch no. 13
More information about the scm-commits
mailing list