Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't crash with NULL procname.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 17 Jan 2012 14:02:05 +0000 (15:02 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 17 Jan 2012 14:04:27 +0000 (15:04 +0100)
src/xbt/xbt_log_layout_format.c
src/xbt/xbt_log_layout_simple.c

index d09a2fe..9fe811b 100644 (file)
@@ -64,7 +64,11 @@ static double format_begin_of_time = -1;
     check_overflow(len);                                                \
   } else (void)0
 
     check_overflow(len);                                                \
   } else (void)0
 
-#define show_string(data) show_it(data, "s")
+#define show_string(data)                                               \
+  if (1) {                                                              \
+    const char *show_string_data = (data);                              \
+    show_it(show_string_data ? show_string_data : "(null)", "s");       \
+  } else (void)0
 #define show_int(data)    show_it(data, "d")
 #define show_double(data) show_it(data, "f")
 
 #define show_int(data)    show_it(data, "d")
 #define show_double(data) show_it(data, "f")
 
index 30108d4..7a81a9c 100644 (file)
@@ -40,7 +40,7 @@ static int xbt_log_layout_simple_doit(xbt_log_layout_t l,
 
   /* Display the proc info if available */
   procname = xbt_procname();
 
   /* Display the proc info if available */
   procname = xbt_procname();
-  if (*procname) {
+  if (procname && *procname) {
     len = snprintf(p, rem_size, "%s:%s:(%d) ",
                    gras_os_myname(), procname, xbt_getpid());
     check_overflow(len);
     len = snprintf(p, rem_size, "%s:%s:(%d) ",
                    gras_os_myname(), procname, xbt_getpid());
     check_overflow(len);