aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-support/wireshark/wireshark/va_list-can-t-be-NULL-on-ARM.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-support/wireshark/wireshark/va_list-can-t-be-NULL-on-ARM.patch')
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark/va_list-can-t-be-NULL-on-ARM.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/meta-networking/recipes-support/wireshark/wireshark/va_list-can-t-be-NULL-on-ARM.patch b/meta-networking/recipes-support/wireshark/wireshark/va_list-can-t-be-NULL-on-ARM.patch
new file mode 100644
index 0000000000..26a004cc3b
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/wireshark/va_list-can-t-be-NULL-on-ARM.patch
@@ -0,0 +1,99 @@
+From 320c4f0d705a3ed94f710fb4b7b3eef897ff7bc4 Mon Sep 17 00:00:00 2001
+From: Steev Klimaszewski <threeway@gmail.com>
+Date: Thu, 19 Jun 2014 16:54:57 -0500
+Subject: [PATCH] va_list can't be NULL on ARM.
+
+Bug: 10209
+Change-Id: Ibd63a530450b7d2d4ec244e91c77caa731ba63aa
+Signed-off-by: Steev Klimaszewski <threeway@gmail.com>
+Signed-off-by: Balint Reczey <balint@balintreczey.hu>
+Reviewed-on: https://code.wireshark.org/review/2464
+Reviewed-by: Evan Huus <eapache@gmail.com>
+Reviewed-by: Michael Mann <mmann78@netscape.net>
+
+Upstream-Status: Backport
+The patch was imported from the wireshark git server
+ (https://code.wireshark.org/review/p/wireshark.git) as of commit id
+ 320c4f0d705a3ed94f710fb4b7b3eef897ff7bc4.
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ epan/expert.c | 36 +++++++++++++++++++++++++++++-------
+ 1 file changed, 29 insertions(+), 7 deletions(-)
+
+diff --git a/epan/expert.c b/epan/expert.c
+index 46be838..a69566d 100644
+--- a/epan/expert.c
++++ b/epan/expert.c
+@@ -381,15 +381,26 @@ expert_set_info_vformat(packet_info *pinfo, proto_item *pi, int group, int sever
+ tap_queue_packet(expert_tap, pinfo, ei);
+ }
+
+-void
+-expert_add_info(packet_info *pinfo, proto_item *pi, expert_field *expindex)
++/* Helper function for expert_add_info() to work around compiler's special needs on ARM*/
++static inline void
++expert_add_info_internal(packet_info *pinfo, proto_item *pi, expert_field *expindex, ...)
+ {
++ /* the va_list is ignored */
++ va_list unused;
+ expert_field_info* eiinfo;
+
+ /* Look up the item */
+ EXPERT_REGISTRAR_GET_NTH(expindex->ei, eiinfo);
+
+- expert_set_info_vformat(pinfo, pi, eiinfo->group, eiinfo->severity, *eiinfo->hf_info.p_id, FALSE, eiinfo->summary, NULL);
++ va_start(unused, expindex);
++ expert_set_info_vformat(pinfo, pi, eiinfo->group, eiinfo->severity, *eiinfo->hf_info.p_id, FALSE, eiinfo->summary, unused);
++ va_end(unused);
++}
++
++void
++expert_add_info(packet_info *pinfo, proto_item *pi, expert_field *expindex)
++{
++ expert_add_info_internal(pinfo, pi, expindex);
+ }
+
+ void
+@@ -406,22 +417,33 @@ expert_add_info_format(packet_info *pinfo, proto_item *pi, expert_field *expinde
+ va_end(ap);
+ }
+
+-proto_item *
+-proto_tree_add_expert(proto_tree *tree, packet_info *pinfo, expert_field* expindex,
+- tvbuff_t *tvb, gint start, gint length)
++/* Helper function for expert_add_expert() to work around compiler's special needs on ARM*/
++static inline proto_item *
++proto_tree_add_expert_internal(proto_tree *tree, packet_info *pinfo, expert_field* expindex,
++ tvbuff_t *tvb, gint start, gint length, ...)
+ {
+ expert_field_info* eiinfo;
+ proto_item *ti;
++ va_list unused;
+
+ /* Look up the item */
+ EXPERT_REGISTRAR_GET_NTH(expindex->ei, eiinfo);
+
+ ti = proto_tree_add_text(tree, tvb, start, length, "%s", eiinfo->summary);
+- expert_set_info_vformat(pinfo, ti, eiinfo->group, eiinfo->severity, *eiinfo->hf_info.p_id, FALSE, eiinfo->summary, NULL);
++ va_start(unused, length);
++ expert_set_info_vformat(pinfo, ti, eiinfo->group, eiinfo->severity, *eiinfo->hf_info.p_id, FALSE, eiinfo->summary, unused);
++ va_end(unused);
+ return ti;
+ }
+
+ proto_item *
++proto_tree_add_expert(proto_tree *tree, packet_info *pinfo, expert_field* expindex,
++ tvbuff_t *tvb, gint start, gint length)
++{
++ return proto_tree_add_expert_internal(tree, pinfo, expindex, tvb, start, length);
++}
++
++proto_item *
+ proto_tree_add_expert_format(proto_tree *tree, packet_info *pinfo, expert_field* expindex,
+ tvbuff_t *tvb, gint start, gint length, const char *format, ...)
+ {
+--
+1.9.1
+