diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 1997-03-30 18:16:03 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 1997-03-30 18:16:03 +0000 |
commit | f4a5eb580f8b15dc64a626f24498614bcdda3f6f (patch) | |
tree | 57a2a7520013f4089ec08802729246bcb8464a71 /usr.bin | |
parent | 321ce468e6bf1584f7d2542912a34ffca97def43 (diff) |
NetBSD PR #3399: Avoid overflowing in ut_host into ut_time (bounds check). Fix from Tatoku Ogaito
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/w/w.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.bin/w/w.c b/usr.bin/w/w.c index 380f19b3534..e7509e0fd55 100644 --- a/usr.bin/w/w.c +++ b/usr.bin/w/w.c @@ -1,4 +1,4 @@ -/* $OpenBSD: w.c,v 1.14 1997/03/25 21:24:12 deraadt Exp $ */ +/* $OpenBSD: w.c,v 1.15 1997/03/30 18:16:02 millert Exp $ */ /*- * Copyright (c) 1980, 1991, 1993, 1994 @@ -300,8 +300,10 @@ main(argc, argv) for (ep = ehead; ep != NULL; ep = ep->next) { p = *ep->utmp.ut_host ? ep->utmp.ut_host : "-"; - if ((x = strchr(p, ':')) != NULL) + if ((x = strchr(p, ':')) != NULL && x - p <= UT_HOSTSIZE) *x++ = '\0'; + else + x = NULL; if (!nflag && isdigit(*p) && (long)(l = inet_addr(p)) != -1 && (hp = gethostbyaddr((char *)&l, sizeof(l), AF_INET))) { |