Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/bin/sh
Module Name: src
Committed By: christos
Date: Mon Jan 4 03:00:24 UTC 2016
Modified Files:
src/bin/sh: cd.c eval.c input.c redir.c redir.h
Log Message:
Don't leak redirected rescriptors to exec'ed processes. This is what ksh
does, but bash does not. For example:
$ cat test1
#!/bin/sh
exec 6> out
echo "test" >&6
sh ./test2
exec 6>&-
$ cat test2
echo "test2" >&6
$ ./test1
./test2: 6: Bad file descriptor
This fixes by side effect the problem of the rc system leaking file descriptors
7 and 8 to all starting daemons:
$ fstat -p 1359
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
root powerd 1359 wd / 2 drwxr-xr-x 512 r
root powerd 1359 0 / 63029 crw-rw-rw- null rw
root powerd 1359 1 / 63029 crw-rw-rw- null rw
root powerd 1359 2 / 63029 crw-rw-rw- null rw
root powerd 1359 3* kqueue pending 0
root powerd 1359 4 / 64463 crw-r----- power r
root powerd 1359 7 flags 0x80034<ISTTY,MPSAFE,LOCKSWORK,CLEAN>
root powerd 1359 8 flags 0x80034<ISTTY,MPSAFE,LOCKSWORK,CLEAN>
root powerd 1359 9* pipe 0xfffffe815d7bfdc0 -> 0x0 w
Note fd=7,8 pointing to the revoked pty from the parent rc process.
To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/bin/sh/cd.c
cvs rdiff -u -r1.110 -r1.111 src/bin/sh/eval.c
cvs rdiff -u -r1.46 -r1.47 src/bin/sh/input.c
cvs rdiff -u -r1.37 -r1.38 src/bin/sh/redir.c
cvs rdiff -u -r1.16 -r1.17 src/bin/sh/redir.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index