From 53aed75490d250452d85022e0961a0a7d1735531 Mon Sep 17 00:00:00 2001 From: Sascha Wildner Date: Fri, 30 Mar 2012 18:36:50 +0200 Subject: [PATCH] rwhod(8): Prevent clobbering the neighboring field by a wrong cast. The time stamps in the rwhod(8) network datagram and, based on that, /var/rwho/whod.* spool files are typed as 32bit int and cannot accept a 64bit time_t. The old code clobbered the first bytes of the adjacent "hostname" field, yielding empty hostnames in local rwho(1) and ruptime(1) output. (Outgoing datagrams to other hosts were not affected.) Re-code to let the compiler do the proper coercion (well, until 2038). Submitted-by: Martin Neitzel Dragonfly-bug: --- usr.sbin/rwhod/rwhod.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/usr.sbin/rwhod/rwhod.c b/usr.sbin/rwhod/rwhod.c index fda528a..32f86f1 100644 --- a/usr.sbin/rwhod/rwhod.c +++ b/usr.sbin/rwhod/rwhod.c @@ -382,7 +382,7 @@ handleread(int sock) } } #endif - time((time_t *)&wd.wd_recvtime); + wd.wd_recvtime = time(NULL); write(whod, (char *)&wd, cc); if (fstat(whod, &st) < 0 || st.st_size > cc) ftruncate(whod, cc); -- 1.7.7.2