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 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 @@ -210,6 +235,8 @@ index 0000000..831448b +#include +#include +#include ++#include ++#include + +#ifdef HAVE_ARPA_INET_H +#include @@ -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-Add-expert-info-about-timeouts.patch b/wireshark-0015-Add-expert-info-about-timeouts.patch deleted file mode 100644 index 2168a42..0000000 --- a/wireshark-0015-Add-expert-info-about-timeouts.patch +++ /dev/null @@ -1,84 +0,0 @@ -From: Peter Lemenkov -Date: Mon, 4 Nov 2013 22:46:16 +0400 -Subject: [PATCH] Add expert info about timeouts - -Backported patch from this bugzilla ticket: - -https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9484 - -Signed-off-by: Peter Lemenkov - -diff --git a/epan/dissectors/packet-rtpproxy.c b/epan/dissectors/packet-rtpproxy.c -index 831448b..04830bc 100644 ---- a/epan/dissectors/packet-rtpproxy.c -+++ b/epan/dissectors/packet-rtpproxy.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - - #ifdef HAVE_ARPA_INET_H - #include -@@ -248,9 +249,14 @@ static gint ett_rtpproxy_notify = -1; - - 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); - -@@ -415,6 +421,8 @@ rtpproxy_add_tid(gboolean is_request, tvbuff_t *tvb, packet_info *pinfo, proto_t - 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)); - } - } - } -@@ -1283,6 +1291,7 @@ proto_register_rtpproxy(void) - 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 */ -@@ -1294,11 +1303,18 @@ proto_register_rtpproxy(void) - "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 -@@ -1334,6 +1350,10 @@ proto_reg_handoff_rtpproxy(void) - 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 +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 +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 +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 - 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 - 1.10.3-5 - Updated RTPproxy dissector (again) - Allow packets more than 64k (for USB capture). See patch no. 13