Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't mess ev->ap (allows multiple %m in layout).
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 30 Aug 2017 12:41:47 +0000 (14:41 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 30 Aug 2017 14:30:32 +0000 (16:30 +0200)
src/xbt/xbt_log_layout_format.c

index 18c55ac..7c41b5b 100644 (file)
@@ -153,7 +153,10 @@ static int xbt_log_layout_format_doit(xbt_log_layout_t l, xbt_log_event_t ev, co
       case 'm': {               /* user-provided message; LOG4J compliant */
         int sz;
         set_sz_from_precision();
       case 'm': {               /* user-provided message; LOG4J compliant */
         int sz;
         set_sz_from_precision();
-        int len = vsnprintf(p, sz, msg_fmt, ev->ap);
+        va_list ap;
+        va_copy(ap, ev->ap);
+        int len = vsnprintf(p, sz, msg_fmt, ap);
+        va_end(ap);
         check_overflow(MIN(sz, len));
         break;
       }
         check_overflow(MIN(sz, len));
         break;
       }