summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authordwmalone <dwmalone@FreeBSD.org>2003-12-28 19:27:14 +0000
committerdwmalone <dwmalone@FreeBSD.org>2003-12-28 19:27:14 +0000
commit1e69eeaeee11196731ec5e555aa60c432a26c56b (patch)
tree8bcdba4f4f3f02107446326a92d68ef55695ecba /sys/kern
parenta3868be26df3ded69173a07b569fec24714282c7 (diff)
downloadFreeBSD-src-1e69eeaeee11196731ec5e555aa60c432a26c56b.zip
FreeBSD-src-1e69eeaeee11196731ec5e555aa60c432a26c56b.tar.gz
Plug a leak of open files that happens when you exec a suid program
with one of std{in,out,err} open. This helps with the file descriptor leaks reported on -current. This should probably be merged into 5.2. Reviewed by: ru Tested by: Bjoern A. Zeeb <bzeeb-lists@lists.zabbadoz.net>
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_descrip.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 5e00b53..3b8227f 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -1730,6 +1730,7 @@ fdcheckstd(td)
fp->f_type = DTYPE_VNODE;
VOP_UNLOCK(nd.ni_vp, 0, td);
devnull = fd;
+ fdrop(fp, td);
} else {
error = do_dup(td, DUP_FIXED, devnull, i, &retval);
if (error != 0)
OpenPOWER on IntegriCloud