From Andre.Albsmeier@siemens.com  Mon Jul 25 08:09:03 2005
Return-Path: <Andre.Albsmeier@siemens.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id B6F5816A41F
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jul 2005 08:09:03 +0000 (GMT)
	(envelope-from Andre.Albsmeier@siemens.com)
Received: from thoth.sbs.de (thoth.sbs.de [192.35.17.2])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1E01E43D46
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jul 2005 08:09:02 +0000 (GMT)
	(envelope-from Andre.Albsmeier@siemens.com)
Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14])
	by thoth.sbs.de (8.12.6/8.12.6) with ESMTP id j6P8918F010616
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jul 2005 10:09:01 +0200
Received: from ims.mchp.siemens.de (ims.mchp.siemens.de [139.25.31.39])
	by mail3.siemens.de (8.12.6/8.12.6) with ESMTP id j6P891cs005092
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jul 2005 10:09:01 +0200
Received: from mail-ct.mchp.siemens.de (mail-ct.mchp.siemens.de [139.25.31.51])
				by ims.mchp.siemens.de  with ESMTP id j6P890JQ011155
				for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jul 2005 10:09:00 +0200 (MEST)
Received: from curry.mchp.siemens.de (curry [139.25.42.7])
	by mail-ct.mchp.siemens.de (8.12.11/8.12.11) with ESMTP id j6P890Mf021535
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 25 Jul 2005 10:09:00 +0200 (MEST)
Received: (from localhost)
	by curry.mchp.siemens.de (8.13.3/8.13.3) id j6P890qO077470
	for FreeBSD-gnats-submit@freebsd.org; Mon, 25 Jul 2005 10:09:00 +0200 (CEST)
Message-Id: <200507250809.j6P890cL021348@curry.mchp.siemens.de>
Date: Mon, 25 Jul 2005 10:09:00 +0200 (CEST)
From: Andre Albsmeier <Andre.Albsmeier@siemens.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [PATCH] fix for wall(1) error message
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         84041
>Category:       bin
>Synopsis:       [patch] fix for wall(1) error message
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 25 08:10:22 GMT 2005
>Closed-Date:    Wed Jan 06 14:39:35 UTC 2010
>Last-Modified:  Wed Jan 06 14:39:35 UTC 2010
>Originator:     Andre Albsmeier
>Release:        FreeBSD 5.4-STABLE i386
>Organization:
>Environment:

FreeBSD 5.4-STABLE #2: Tue Jul 12 13:55:14 CEST 2005
Xorg installed

>Description:

When a user is logged in via xdm, pam_lastlog updates
utmp with an entry where ut_line reads ":0". If wall(1)
is now used it emits an error message:

wall: /dev/:0: No such file or directory

>How-To-Repeat:

Login via xdm. su to root and do "echo bla | wall".

>Fix:

Let wall.c check the ut_line entry (as it is done in
ttystat() of usr.bin/w/w.c):

--- usr.bin/wall/wall.c.ORI	Sun Jul 24 08:20:41 2005
+++ usr.bin/wall/wall.c	Sun Jul 24 09:13:49 2005
@@ -138,8 +138,13 @@
 	iov.iov_len = mbufsize;
 	/* NOSTRICT */
 	while (fread((char *)&utmp, sizeof(utmp), 1, fp) == 1) {
+		static struct stat sb;
+		char ttybuf[MAXPATHLEN];
 		if (!utmp.ut_name[0])
 			continue;
+		snprintf(ttybuf, sizeof(ttybuf), "%s%.*s", _PATH_DEV, UT_LINESIZE, utmp.ut_line);
+		if (stat(ttybuf, &sb) != 0)
+			continue;		/* corrupted record */
 		if (grouplist) {
 			ingroup = 0;
 			strlcpy(username, utmp.ut_name, sizeof(utmp.ut_name));


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: jh 
State-Changed-When: Wed Jan 6 14:39:34 UTC 2010 
State-Changed-Why:  
Fixed by r155875. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=84041 
>Unformatted:
