]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
util: initialize _argtypes in VA_FORMAT_ADVANCE when systemd is built with MSan
authorEvgeny Vereshchagin <evvers@ya.ru>
Sun, 4 Nov 2018 20:43:08 +0000 (21:43 +0100)
committerEvgeny Vereshchagin <evvers@ya.ru>
Tue, 6 Nov 2018 18:01:32 +0000 (19:01 +0100)
This gets around https://github.com/google/sanitizers/issues/992.

src/basic/stdio-util.h

index 73c03274c717d16e75655e443053a16a5b093d18..dc67b6e7613ca20c51c46750f9850b463207dbae 100644 (file)
@@ -7,6 +7,7 @@
 #include <sys/types.h>
 
 #include "macro.h"
+#include "util.h"
 
 #define snprintf_ok(buf, len, fmt, ...) \
         ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
@@ -18,6 +19,9 @@
 do {                                                                    \
         int _argtypes[128];                                             \
         size_t _i, _k;                                                  \
+        /* See https://github.com/google/sanitizers/issues/992 */       \
+        if (HAS_FEATURE_MEMORY_SANITIZER)                               \
+                zero(_argtypes);                                        \
         _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes); \
         assert(_k < ELEMENTSOF(_argtypes));                             \
         for (_i = 0; _i < _k; _i++) {                                   \