diff options
author | 2014-11-02 13:59:40 +0000 | |
---|---|---|
committer | 2014-11-02 13:59:40 +0000 | |
commit | f7d69561b5e99fab85d28a34213092600aa64f08 (patch) | |
tree | 24a002387af9c2130cb55811e80893fcb2d02cf0 | |
parent | Fix a NULL deref when getting an actual result for an invalid hostname (diff) | |
download | wireguard-openbsd-f7d69561b5e99fab85d28a34213092600aa64f08.tar.xz wireguard-openbsd-f7d69561b5e99fab85d28a34213092600aa64f08.zip |
Convert the logic in yyerror(). Instead of creating a temporary
format string, create a temporary message.
OK deraadt@
-rw-r--r-- | usr.sbin/relayd/parse.y | 12 | ||||
-rw-r--r-- | usr.sbin/relayd/relayd.h | 3 |
2 files changed, 8 insertions, 7 deletions
diff --git a/usr.sbin/relayd/parse.y b/usr.sbin/relayd/parse.y index b2dcda9ca80..f8575c93633 100644 --- a/usr.sbin/relayd/parse.y +++ b/usr.sbin/relayd/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.191 2014/10/20 14:50:41 reyk Exp $ */ +/* $OpenBSD: parse.y,v 1.192 2014/11/02 13:59:40 bluhm Exp $ */ /* * Copyright (c) 2007 - 2014 Reyk Floeter <reyk@openbsd.org> @@ -2033,15 +2033,15 @@ int yyerror(const char *fmt, ...) { va_list ap; - char *nfmt; + char *msg; file->errors++; va_start(ap, fmt); - if (asprintf(&nfmt, "%s:%d: %s", file->name, yylval.lineno, fmt) == -1) - fatalx("yyerror asprintf"); - vlog(LOG_CRIT, nfmt, ap); + if (vasprintf(&msg, fmt, ap) == -1) + fatalx("yyerror vasprintf"); va_end(ap); - free(nfmt); + logit(LOG_CRIT, "%s:%d: %s", file->name, yylval.lineno, msg); + free(msg); return (0); } diff --git a/usr.sbin/relayd/relayd.h b/usr.sbin/relayd/relayd.h index 42d728de06b..ac192e0cdae 100644 --- a/usr.sbin/relayd/relayd.h +++ b/usr.sbin/relayd/relayd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: relayd.h,v 1.194 2014/10/20 14:50:41 reyk Exp $ */ +/* $OpenBSD: relayd.h,v 1.195 2014/11/02 13:59:40 bluhm Exp $ */ /* * Copyright (c) 2006 - 2014 Reyk Floeter <reyk@openbsd.org> @@ -1306,6 +1306,7 @@ void log_warn(const char *, ...) __attribute__((__format__ (printf, 1, 2))); void log_warnx(const char *, ...) __attribute__((__format__ (printf, 1, 2))); void log_info(const char *, ...) __attribute__((__format__ (printf, 1, 2))); void log_debug(const char *, ...) __attribute__((__format__ (printf, 1, 2))); +void logit(int, const char *, ...) __attribute__((__format__ (printf, 2, 3))); void vlog(int, const char *, va_list) __attribute__((__format__ (printf, 2, 0))); __dead void fatal(const char *); __dead void fatalx(const char *); |