This is the missing half of the earlier patch; without it, we get
instant crashes on i386 (but, oddly, no warnings anywhere).
dstr_vputf(d, fmt + 1, ap);
} else if (*fmt == '?') {
if (strcmp(fmt, "?ADDR") == 0) {
dstr_vputf(d, fmt + 1, ap);
} else if (*fmt == '?') {
if (strcmp(fmt, "?ADDR") == 0) {
- const addr *a = va_arg(ap, const addr *);
+ const addr *a = va_arg(*ap, const addr *);
switch (a->sa.sa_family) {
case AF_INET:
u_quotify(d, "INET");
switch (a->sa.sa_family) {
case AF_INET:
u_quotify(d, "INET");
abort();
}
} else if (strcmp(fmt, "?B64") == 0) {
abort();
}
} else if (strcmp(fmt, "?B64") == 0) {
- const octet *p = va_arg(ap, const octet *);
- size_t n = va_arg(ap, size_t);
+ const octet *p = va_arg(*ap, const octet *);
+ size_t n = va_arg(*ap, size_t);
base64_ctx b64;
dstr_putc(d, ' ');
base64_init(&b64);
base64_ctx b64;
dstr_putc(d, ' ');
base64_init(&b64);
base64_encode(&b64, 0, 0, d);
while (d->len && d->buf[d->len - 1] == '=') d->len--;
} else if (strcmp(fmt, "?TOKENS") == 0) {
base64_encode(&b64, 0, 0, d);
while (d->len && d->buf[d->len - 1] == '=') d->len--;
} else if (strcmp(fmt, "?TOKENS") == 0) {
- const char *const *av = va_arg(ap, const char *const *);
+ const char *const *av = va_arg(*ap, const char *const *);
while (*av) u_quotify(d, *av++);
} else if (strcmp(fmt, "?PEER") == 0)
while (*av) u_quotify(d, *av++);
} else if (strcmp(fmt, "?PEER") == 0)
- u_quotify(d, p_name(va_arg(ap, peer *)));
+ u_quotify(d, p_name(va_arg(*ap, peer *)));
else if (strcmp(fmt, "?ERRNO") == 0) {
dstr_putf(d, " E%d", errno);
u_quotify(d, strerror(errno));
else if (strcmp(fmt, "?ERRNO") == 0) {
dstr_putf(d, " E%d", errno);
u_quotify(d, strerror(errno));
dstr_vputf(&dd, fmt, ap);
u_quotify(d, dd.buf);
}
dstr_vputf(&dd, fmt, ap);
u_quotify(d, dd.buf);
}
- fmt = va_arg(ap, const char *);
+ fmt = va_arg(*ap, const char *);
* @const char *status@ = status code to report
* @const char *tag@ = tag string, or null
* @const char *fmt@ = pointer to format string
* @const char *status@ = status code to report
* @const char *tag@ = tag string, or null
* @const char *fmt@ = pointer to format string
- * @va_list ap@ = arguments in list
+ * @va_list *ap@ = arguments in list
* @...@ = other arguments
*
* Returns: ---
* @...@ = other arguments
*
* Returns: ---
* @const char *fmt@ = pointer to format string
* @const char *p@ = pointer to raw string
* @size_t sz@ = size of raw string
* @const char *fmt@ = pointer to format string
* @const char *p@ = pointer to raw string
* @size_t sz@ = size of raw string
- * @va_list ap@ = arguments in list
+ * @va_list *ap@ = arguments in list
* @...@ = other arguments
*
* Returns: ---
* @...@ = other arguments
*
* Returns: ---