summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimp <imp@openbsd.org>1996-11-01 06:45:45 +0000
committerimp <imp@openbsd.org>1996-11-01 06:45:45 +0000
commite05618ac347752d20af803cf00766e02fbc8639a (patch)
treef481924d0b044eb384fdd405b198fc35767e43a7
parent40 buf oflows (diff)
downloadwireguard-openbsd-e05618ac347752d20af803cf00766e02fbc8639a.tar.xz
wireguard-openbsd-e05618ac347752d20af803cf00766e02fbc8639a.zip
Buffer oflow possible, but unlikely
-rw-r--r--usr.sbin/rwhod/rwhod.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.sbin/rwhod/rwhod.c b/usr.sbin/rwhod/rwhod.c
index 631ba54b439..241e6be44a5 100644
--- a/usr.sbin/rwhod/rwhod.c
+++ b/usr.sbin/rwhod/rwhod.c
@@ -39,7 +39,7 @@ static char copyright[] =
#ifndef lint
/*static char sccsid[] = "@(#)rwhod.c 8.1 (Berkeley) 6/6/93";*/
-static char rcsid[] = "$Id: rwhod.c,v 1.2 1996/08/16 23:24:58 deraadt Exp $";
+static char rcsid[] = "$Id: rwhod.c,v 1.3 1996/11/01 06:45:45 imp Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -139,7 +139,8 @@ main(argc, argv)
(void) signal(SIGHUP, getboottime);
openlog("rwhod", LOG_PID, LOG_DAEMON);
/*
- * Establish host name as returned by system.
+ * Establish host name as returned by system. The -1 plus myname
+ * being global ensure that myname is NUL terminated.
*/
if (gethostname(myname, sizeof(myname) - 1) < 0) {
syslog(LOG_ERR, "gethostname: %m");
@@ -147,7 +148,8 @@ main(argc, argv)
}
if ((cp = index(myname, '.')) != NULL)
*cp = '\0';
- strncpy(mywd.wd_hostname, myname, sizeof(myname) - 1);
+ strncpy(mywd.wd_hostname, myname, sizeof(mywd.wd_hostname) - 1);
+ mywd.wd_hostname[sizeof(mywd.wd_hostname) - 1] = '\0';
utmpf = open(_PATH_UTMP, O_RDONLY|O_CREAT, 0644);
if (utmpf < 0) {
syslog(LOG_ERR, "%s: %m", _PATH_UTMP);