summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbluhm <bluhm@openbsd.org>2014-11-02 13:59:40 +0000
committerbluhm <bluhm@openbsd.org>2014-11-02 13:59:40 +0000
commitf7d69561b5e99fab85d28a34213092600aa64f08 (patch)
tree24a002387af9c2130cb55811e80893fcb2d02cf0
parentFix a NULL deref when getting an actual result for an invalid hostname (diff)
downloadwireguard-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.y12
-rw-r--r--usr.sbin/relayd/relayd.h3
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 *);