[Midnightbsd-cvs] src: usr.bin/wall: sync with freebsd 7
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Fri Mar 27 18:29:03 EDT 2009
Log Message:
-----------
sync with freebsd 7
Modified Files:
--------------
src/usr.bin/wall:
ttymsg.c (r1.1.1.1 -> r1.2)
wall.c (r1.1.1.1 -> r1.2)
-------------- next part --------------
Index: ttymsg.c
===================================================================
RCS file: /home/cvs/src/usr.bin/wall/ttymsg.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L usr.bin/wall/ttymsg.c -L usr.bin/wall/ttymsg.c -u -r1.1.1.1 -r1.2
--- usr.bin/wall/ttymsg.c
+++ usr.bin/wall/ttymsg.c
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/wall/ttymsg.c,v 1.11 2002/10/11 14:58:34 mike Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/wall/ttymsg.c,v 1.12 2006/01/27 08:52:14 ume Exp $");
#ifndef lint
static const char sccsid[] = "@(#)ttymsg.c 8.2 (Berkeley) 11/16/93";
@@ -68,14 +68,18 @@
int cnt, fd;
static char device[MAXNAMLEN] = _PATH_DEV;
static char errbuf[1024];
+ char *p;
int forked;
forked = 0;
if (iovcnt > (int)(sizeof(localiov) / sizeof(localiov[0])))
return ("too many iov's (change code in wall/ttymsg.c)");
- strlcpy(device + sizeof(_PATH_DEV) - 1, line, sizeof(device));
- if (strchr(device + sizeof(_PATH_DEV) - 1, '/')) {
+ p = device + sizeof(_PATH_DEV) - 1;
+ strlcpy(p, line, sizeof(device));
+ if (strncmp(p, "pts/", 4) == 0)
+ p += 4;
+ if (strchr(p, '/') != NULL) {
/* A slash is an attempt to break security... */
(void) snprintf(errbuf, sizeof(errbuf),
"Too many '/' in \"%s\"", device);
Index: wall.c
===================================================================
RCS file: /home/cvs/src/usr.bin/wall/wall.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L usr.bin/wall/wall.c -L usr.bin/wall/wall.c -u -r1.1.1.1 -r1.2
--- usr.bin/wall/wall.c
+++ usr.bin/wall/wall.c
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/wall/wall.c,v 1.23 2003/02/21 08:46:44 tjr Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/wall/wall.c,v 1.24 2006/02/21 13:01:00 cognet Exp $");
#ifndef lint
static const char copyright[] =
@@ -81,6 +81,19 @@
int mbufsize;
char *mbuf;
+static int
+ttystat(char *line, int sz)
+{
+ struct stat sb;
+ char ttybuf[MAXPATHLEN];
+
+ (void)snprintf(ttybuf, sizeof(ttybuf), "%s%.*s", _PATH_DEV, sz, line);
+ if (stat(ttybuf, &sb) == 0) {
+ return (0);
+ } else
+ return (-1);
+}
+
int
main(int argc, char *argv[])
{
@@ -140,6 +153,8 @@
while (fread((char *)&utmp, sizeof(utmp), 1, fp) == 1) {
if (!utmp.ut_name[0])
continue;
+ if (ttystat(utmp.ut_line, UT_LINESIZE) != 0)
+ continue;
if (grouplist) {
ingroup = 0;
strlcpy(username, utmp.ut_name, sizeof(utmp.ut_name));
More information about the Midnightbsd-cvs
mailing list