X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fmacro.h;h=dbdf5b3fb00f2d83362ab9bd5f97f9cc699b64b4;hb=e88baee88fad8bc59d33b55a7a2d640ef9e16cd6;hp=0dd210afa7c419dcf362281134f325ed3542616b;hpb=963ddb917de3140308ee62fb642b2307a577a39e;p=elogind.git diff --git a/src/shared/macro.h b/src/shared/macro.h index 0dd210afa..dbdf5b3fb 100644 --- a/src/shared/macro.h +++ b/src/shared/macro.h @@ -193,10 +193,12 @@ static inline size_t IOVEC_INCREMENT(struct iovec *i, unsigned n, size_t k) { #define _cleanup_closedir_ __attribute__((cleanup(closedirp))) #define _cleanup_umask_ __attribute__((cleanup(umaskp))) -#define VA_FORMAT_ADVANCE(format, ap) do { \ - int _argtypes[64]; \ +#define VA_FORMAT_ADVANCE(format, ap) \ +do { \ + int _argtypes[128]; \ size_t _i, _k; \ _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes); \ + assert(_k < ELEMENTSOF(_argtypes)); \ for (_i = 0; _i < _k; _i++) { \ if (_argtypes[_i] & PA_FLAG_PTR) { \ (void) va_arg(ap, void*); \