From 286d3bd0f9750d674bfa676cd347b29df5e36e65 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 20 Nov 2007 14:45:37 +0000 Subject: [PATCH] Tue Nov 20 06:32:08 EST 2007 Pekka Pessi * su_tagarg.h: call va_copy() before calling tl_vlist() Looks like Solaris on amd64 is not happy with normal va_start()/va_end() use of va_lists. Thanks for Michael Jerris for reporting the problem. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6359 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h b/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h index ea5b3bcc0b..6c7fec5150 100644 --- a/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h +++ b/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h @@ -142,8 +142,11 @@ typedef struct { if (ta_start__tag != NULL && \ ta_start__tag != tag_null && \ ta_start__tag != tag_next) { \ + va_list ta_start__ap; \ + va_copy(ta_start__ap, (ta).ap); \ (ta).tl[1].t_tag = tag_next; \ - (ta).tl[1].t_value = (tag_value_t)tl_vlist((ta).ap); \ + (ta).tl[1].t_value = (tag_value_t)tl_vlist(ta_start__ap); \ + va_end(ta_start__ap); \ } else { \ (ta).tl[1].t_value = 0; (ta).tl[1].t_value = (tag_value_t)0; \ } \