Wietse Venema: > > The panic message says "%s" therefore this VBUF_SNPRINTF() call is > > made while formatting a string with an fmt value of "%s". > > Unfortunately, the panic call overwrites the format string that was > involved with the error, so the analysis for width and precision > is wrong.
If you built Postfix from source, applying this will save the format string during panic, and may make problem diagnosis possible. Wietse --- src/util/vbuf_print.c- 2017-01-01 10:58:50.000000000 -0500 +++ src/util/vbuf_print.c 2017-08-30 07:09:17.000000000 -0400 @@ -109,10 +109,10 @@ VBUF_SPACE((bp), (sz)); \ _ret = snprintf((char *) (bp)->ptr, (bp)->cnt, (fmt), (arg)); \ if (_ret < 0) \ - msg_panic("%s: output error for '%s'", myname, (fmt)); \ + msg_panic("%s: output error for '%s'", myname, mystrdup(fmt)); \ if (_ret >= (bp)->cnt) \ msg_panic("%s: output for '%s' exceeds space %ld", \ - myname, fmt, (long) (bp)->cnt); \ + myname, mystrdup(fmt), (long) (bp)->cnt); \ VBUF_SKIP(bp); \ } while (0) #else