use signal safe ust_safe_snprintf()
[ust.git] / libust / serialize.c
index a9c6f69b79dd4e97b1d3e66169bd780a9aef44f7..8f393ed074d08ad98836db24e39ae729cd0f0122 100644 (file)
@@ -41,6 +41,7 @@
 #include "tracer.h"
 //#include "list.h"
 #include "usterr.h"
+#include "ust_snprintf.h"
 
 enum ltt_type {
        LTT_TYPE_SIGNED_INT,
@@ -647,6 +648,7 @@ notrace void ltt_vtrace(const struct marker *mdata, void *probe_data,
        largest_align = 1;      /* must be non-zero for ltt_align */
        data_size = ltt_get_data_size(&closure, serialize_private,
                                        &largest_align, fmt, &args_copy);
+       largest_align = min_t(int, largest_align, sizeof(void *));
        va_end(args_copy);
 
        /* Iterate on each trace */
@@ -807,7 +809,7 @@ int serialize_to_text(char *outbuf, int bufsize, const char *fmt, va_list ap)
                outbuf = &false_buf;
                bufsize = 1;
        }
-       result = vsnprintf(outbuf, bufsize, new_fmt, ap);
+       result = ust_safe_vsnprintf(outbuf, bufsize, new_fmt, ap);
 
        return result;
 }
This page took 0.022499 seconds and 4 git commands to generate.