From owner-freebsd-bugs@FreeBSD.ORG Sun Jan 4 08:30:18 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 84D8316A4CE for ; Sun, 4 Jan 2004 08:30:18 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4EBD643D49 for ; Sun, 4 Jan 2004 08:30:16 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i04GUGFR074776 for ; Sun, 4 Jan 2004 08:30:16 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i04GUGlU074775; Sun, 4 Jan 2004 08:30:16 -0800 (PST) (envelope-from gnats) Resent-Date: Sun, 4 Jan 2004 08:30:16 -0800 (PST) Resent-Message-Id: <200401041630.i04GUGlU074775@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Colin Percival Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3B22016A4CE for ; Sun, 4 Jan 2004 08:28:58 -0800 (PST) Received: from fafnir.daemonology.net (h24-87-233-42.vc.shawcable.net [24.87.233.42]) by mx1.FreeBSD.org (Postfix) with SMTP id A883943D58 for ; Sun, 4 Jan 2004 08:28:55 -0800 (PST) (envelope-from cperciva@fafnir.daemonology.net) Received: (qmail 622 invoked by uid 0); 4 Jan 2004 16:28:59 -0000 Message-Id: <20040104162859.621.qmail@fafnir.daemonology.net> Date: 4 Jan 2004 16:28:59 -0000 From: Colin Percival To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: kern/60897: devfs_rule_matchpath fails on directories X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Colin Percival List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jan 2004 16:30:18 -0000 >Number: 60897 >Category: kern >Synopsis: devfs_rule_matchpath fails on directories >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jan 04 08:30:15 PST 2004 >Closed-Date: >Last-Modified: >Originator: Colin Percival >Release: FreeBSD 5.2-RC i386 >Organization: >Environment: System: FreeBSD fafnir.daemonology.net 5.2-RC FreeBSD 5.2-RC #3: Sun Jan 4 16:13:57 GMT 2004 cperciva@fafnir.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386 >Description: devfs_rule_matchpath(dk,de) always returns 0 if de is a directory. In particular, this means that /dev/fd/ cannot be unhidden by specifying "path fd unhide". This causes problems for any jailed processes which want to use /dev/stdout (for example, buildkernel!) >How-To-Repeat: fafnir# mount -t devfs devfs /tmp/dev fafnir# devfs rule -s 10 delset fafnir# devfs rule -s 10 add hide fafnir# devfs rule -s 10 add path fd unhide fafnir# devfs -m /tmp/dev ruleset 10 fafnir# devfs -m /tmp/dev rule applyset fafnir# ls -l /tmp/dev/ [nothing listed] >Fix: --- devfs_rule.diff begins here --- Index: devfs_rule.c =================================================================== RCS file: /usr/local/freebsd-update-server/cvs/src/sys/fs/devfs/devfs_rule.c,v retrieving revision 1.8 diff -u -r1.8 devfs_rule.c --- devfs_rule.c 19 Feb 2003 05:47:17 -0000 1.8 +++ devfs_rule.c 4 Jan 2004 16:09:00 -0000 @@ -633,7 +633,8 @@ dev = devfs_rule_getdev(de); if (dev != NULL) pname = dev->si_name; - else if (de->de_dirent->d_type == DT_LNK) + else if (de->de_dirent->d_type == DT_LNK || + de->de_dirent->d_type == DT_DIR) pname = de->de_dirent->d_name; else return (0); --- devfs_rule.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: