summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1999-06-07 01:40:01 +0000
committerderaadt <deraadt@openbsd.org>1999-06-07 01:40:01 +0000
commitad66ca53938a94710cc07f207cd4a4cb6491f2ef (patch)
tree3a01c73c18113da7199c0c83cb4555f16d75d609
parentstore NULL in fd_ofiles (diff)
downloadwireguard-openbsd-ad66ca53938a94710cc07f207cd4a4cb6491f2ef.tar.xz
wireguard-openbsd-ad66ca53938a94710cc07f207cd4a4cb6491f2ef.zip
do not leak file descriptors if copyout() fails
-rw-r--r--sys/kern/uipc_syscalls.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index ffc0ee9fa7a..cff7ebce68b 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uipc_syscalls.c,v 1.20 1999/06/07 01:38:44 deraadt Exp $ */
+/* $OpenBSD: uipc_syscalls.c,v 1.21 1999/06/07 01:40:01 deraadt Exp $ */
/* $NetBSD: uipc_syscalls.c,v 1.19 1996/02/09 19:00:48 christos Exp $ */
/*
@@ -324,7 +324,8 @@ sys_socketpair(p, v, retval)
}
error = copyout((caddr_t)sv, (caddr_t)SCARG(uap, rsv),
2 * sizeof (int));
- return (error);
+ if (error == 0)
+ return (error);
free4:
ffree(fp2);
fdp->fd_ofiles[sv[1]] = NULL;