From 4a4f1cc7585921a0a996fae8e578d62e4682b951 Mon Sep 17 00:00:00 2001 From: guido Date: Thu, 30 Sep 1999 19:13:17 +0000 Subject: Plug a potential filedescriptor leak. This will probably almost never be triggered. Reviewed by: David Greenman --- sys/kern/uipc_syscalls.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sys/kern/uipc_syscalls.c') diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index b87114d..8048cdb 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -185,6 +185,7 @@ accept1(p, uap, compat) } */ *uap; int compat; { + struct filedesc *fdp = p->p_fd; struct file *fp; struct sockaddr *sa; int namelen, error, s; @@ -198,7 +199,7 @@ accept1(p, uap, compat) if(error) return (error); } - error = getsock(p->p_fd, uap->s, &fp); + error = getsock(fdp, uap->s, &fp); if (error) return (error); s = splnet(); @@ -292,6 +293,10 @@ gotnoname: } if (sa) FREE(sa, M_SONAME); + if (error) { + fdp->fd_ofiles[fd] = 0; + ffree(fp); + } splx(s); return (error); } -- cgit v1.1