summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenning Brauer <henning@cvs.openbsd.org>2007-03-02 11:23:24 +0000
committerHenning Brauer <henning@cvs.openbsd.org>2007-03-02 11:23:24 +0000
commitbf48456242c54e46dc639b2de4c771a42c253a7d (patch)
treedf01cdf725c20b15d3269acea94e1c3e93b9ca24
parentd6931dd72406e85bf2d7968d8c555b97e4c532a3 (diff)
If a syntax error is found past 80 columns, parse_warn accessed memory
outside of the `spaces' array when trying to print the caret marker found by "Matthew R. Dempsky" <mrd@alkemio.org>, fix inspired by a.velichinsky@gmail.com. discussed with krw
-rw-r--r--sbin/dhclient/errwarn.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sbin/dhclient/errwarn.c b/sbin/dhclient/errwarn.c
index 6c0fbefc380..d9aea61a9e4 100644
--- a/sbin/dhclient/errwarn.c
+++ b/sbin/dhclient/errwarn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: errwarn.c,v 1.12 2005/07/09 14:36:15 krw Exp $ */
+/* $OpenBSD: errwarn.c,v 1.13 2007/03/02 11:23:23 henning Exp $ */
/* Errors and warnings... */
@@ -220,9 +220,8 @@ parse_warn(char *fmt, ...)
#ifndef DEBUG
syslog(LOG_ERR, "%s", mbuf);
syslog(LOG_ERR, "%s", token_line);
- if (lexline < 81)
- syslog(LOG_ERR,
- "%s^", &spaces[sizeof(spaces) - lexchar]);
+ if (lexchar < 81)
+ syslog(LOG_ERR, "%*c", lexchar, '^');
#endif
if (log_perror) {