From d458a37885714323658f12d0da555473beca7c4c Mon Sep 17 00:00:00 2001 From: phk Date: Tue, 20 Mar 2001 13:26:13 +0000 Subject: Make the pseudo-driver for "/dev/fd/*" handle fd's larger than 255. PR: 25936 --- sys/kern/kern_descrip.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 4527346..79b8e41 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -1315,7 +1315,7 @@ fdopen(dev, mode, type, p) * actions in dupfdopen below. Other callers of vn_open or VOP_OPEN * will simply report the error. */ - p->p_dupfd = minor(dev); + p->p_dupfd = dev2unit(dev); return (ENODEV); } @@ -1478,6 +1478,13 @@ fildesc_clone(void *arg, char *name, int namelen, dev_t *dev) return; if (u <= 2) return; + /* Don't clone higher than it makes sense */ + if (u >= maxfilesperproc) + return; + /* And don't clone higher than our minors will support */ + if (u > 0xffffff) + return; + u = unit2minor(u); *dev = make_dev(&fildesc_cdevsw, u, UID_BIN, GID_BIN, 0666, name); return; } -- cgit v1.1