[Freeswitch-svn] [commit] r6359 - freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip

Freeswitch SVN mikej at freeswitch.org
Tue Nov 20 09:45:37 EST 2007


Author: mikej
Date: Tue Nov 20 09:45:37 2007
New Revision: 6359

Modified:
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h

Log:
Tue Nov 20 06:32:08 EST 2007  Pekka Pessi <Pekka.Pessi at nokia.com>
  * 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. 



Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_tagarg.h	Tue Nov 20 09:45:37 2007
@@ -142,8 +142,11 @@
     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;	\
     }									\



More information about the Freeswitch-svn mailing list