util: initialize _argtypes in VA_FORMAT_ADVANCE when systemd is built with MSan

This gets around https://github.com/google/sanitizers/issues/992.
This commit is contained in:
Evgeny Vereshchagin 2018-11-04 21:43:08 +01:00
parent 49a060aca8
commit 3e180a2516
1 changed files with 4 additions and 0 deletions

View 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++) { \