=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/wall/ttymsg.c,v retrieving revision 1.17 retrieving revision 1.18 diff -c -r1.17 -r1.18 *** src/usr.bin/wall/ttymsg.c 2015/11/05 22:20:11 1.17 --- src/usr.bin/wall/ttymsg.c 2019/05/16 06:23:15 1.18 *************** *** 1,4 **** ! /* $OpenBSD: ttymsg.c,v 1.17 2015/11/05 22:20:11 benno Exp $ */ /* $NetBSD: ttymsg.c,v 1.3 1994/11/17 07:17:55 jtc Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: ttymsg.c,v 1.18 2019/05/16 06:23:15 deraadt Exp $ */ /* $NetBSD: ttymsg.c,v 1.3 1994/11/17 07:17:55 jtc Exp $ */ /* *************** *** 87,99 **** return (errbuf); } - if (getuid()) { - if (stat(device, &st) < 0) - return (NULL); - if ((st.st_mode & S_IWGRP) == 0) - return (NULL); - } - /* * open will fail on slip lines or exclusive-use lines * if not running as root; not an error. --- 87,92 ---- *************** *** 104,109 **** --- 97,110 ---- (void) snprintf(errbuf, sizeof(errbuf), "%s: %s", device, strerror(errno)); return (errbuf); + } + + if (getuid()) { + if (fstat(fd, &st) < 0 || + (st.st_mode & S_IWGRP) == 0) { + close(fd); + return (NULL); + } } for (cnt = left = 0; cnt < iovcnt; ++cnt)