Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jun 2000 01:39:45 -0700 (PDT)
From:      kbyanc@posi.net
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/19514: patch to prevent tail'ing directories
Message-ID:  <200006260839.BAA02636@gateway.posi.net>

next in thread | raw e-mail | index | archive | help

>Number:         19514
>Category:       bin
>Synopsis:       patch to prevent tail'ing directories
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jun 26 01:40:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Kelly Yancey
>Release:        FreeBSD 4.0-STABLE i386
>Organization:
>Environment:

FreeBSD vaio 4.0-STABLE FreeBSD 4.0-STABLE #6: Sun Jun 25 18:32:08 PDT
2000     kbyanc@vaio:/usr/src/sys/compile/VAIO  i386

(although tail.c is identical in -current)

>Description:

	tail(1) does not prevent the user from doing nonsensical things
	like tail'ing directories. Other commands, i.e. more(1) do. This
	patch alerts the user when they try to tail a directory. In
	addition, it also adds checks for reading symlink contents and
	whiteout entries, however I can't imagine how either of these
	scenarios would occur.

>How-To-Repeat:

	tail .

>Fix:

--- usr.bin/tail/tail.c.orig	Mon Jun 26 01:30:01 2000
+++ usr.bin/tail/tail.c	Mon Jun 26 01:38:38 2000
@@ -171,6 +171,16 @@
 				ierr();
 				continue;
 			}
+			if (sb.st_mode & S_IFDIR)
+				errx(1, "%s is a directory", fname);
+			if (sb.st_mode & S_IFLNK)
+				/* This should transparently be resolved and
+				 * thus never happen.
+				 */
+				errx(1, "%s is a symlink", fname);
+			if (sb.st_mode & S_IFWHT)
+				/* This should never happen. */
+				errx(1, "%s is a whiteout entry", fname);
 			if (argc > 1) {
 				(void)printf("%s==> %s <==\n",
 				    first ? "" : "\n", fname);

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006260839.BAA02636>