bin/59456: fdescfs stat / compress creates only empty files
dirk.meyer at dinoex.sub.org
dirk.meyer at dinoex.sub.org
Wed Nov 19 00:20:27 PST 2003
>Number: 59456
>Category: bin
>Synopsis: fdescfs stat / compress creates only empty files
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Nov 19 00:20:24 PST 2003
>Closed-Date:
>Last-Modified:
>Originator: Dirk Meyer
>Release: FreeBSD 5.1-CURRENT i386
>Organization:
privat
>Environment:
FreeBSD 5.1-CURRENT
http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/compress/compress.c.diff?r1=1.20&r2=1.21&f=h
>Description:
compress aborts when writing via stodout.
fails when fdescfs is mounted:
add to /etc/fstab:
fdescfs /dev/fd fdescfs rw 0 0
# ls -l /dev/stdout
lrwxr-xr-x 1 root wheel 6 11 Nov 19:39 /dev/stdout@ -> fd/1
without fdescfs:
# ls -l /dev/fd/
total 0
crw-rw-rw- 1 root wheel 22, 0 11 Nov 19:39 0
crw-rw-rw- 1 root wheel 22, 1 11 Nov 19:39 1
crw-rw-rw- 1 root wheel 22, 2 11 Nov 19:39 2
with fdescfs:
# ls -l /dev/fd/
total 16
crw--w---- 1 root tty 5, 1 19 Nov 05:43 0
crw--w---- 1 root tty 5, 1 19 Nov 05:43 1
crw--w---- 1 root tty 5, 1 19 Nov 05:43 2
crw--w---- 1 root tty 5, 1 19 Nov 05:43 3
crw--w---- 1 root tty 5, 1 19 Nov 05:43 4
crw--w---- 1 root tty 5, 1 19 Nov 05:43 5
d-w------- 1 root wheel 1024 19 Nov 05:04 6/
d--------- 1 root wheel 512 12 Nov 04:45 7/
but root should be ablte to write
from truss with fdescfs:
stat("/dev/stdout",0xbfbfe610) = 0 (0x0)
ioctl(2,TIOCGETA,0xbfbfe160) = 0 (0x0)
from truss without fdescfs:
stat("/dev/stdout",0xbfbff540) = 0 (0x0)
open("/dev/stdin",0x0,0666) = 6 (0x6)
stat("/dev/stdin",0xbfbff5a0) = 0 (0x0)
st_mode with fdescfs:
stat = 0x81a4 0100644
#define S_IFREG 0100000 /* regular */
is a regular file (ERROR)
st_mode without fdescfs:
stat = 0x21b6 0020666
#define S_IFCHR 0020000 /* character special */
is character special (OK)
>How-To-Repeat:
root at current# compress -b12 <test.2p >test.2
overwrite /dev/stdout? root at current#
root at current# ls -l test.2*
-rw-r--r-- 1 root wheel 38 19 Nov 04:54 test.2p
-rw-r--r-- 1 root wheel 0 19 Nov 05:11 test.2
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list