summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortedu <tedu@openbsd.org>2004-02-21 20:08:32 +0000
committertedu <tedu@openbsd.org>2004-02-21 20:08:32 +0000
commitd2ef76ab1c21b6da43b8989fc75d9182666f6b50 (patch)
tree5e2a39afd3b4377ba27c6e89ddaf6de1da6ee825
parentRemove left-over dependencies on the old rcons code. (diff)
downloadwireguard-openbsd-d2ef76ab1c21b6da43b8989fc75d9182666f6b50.tar.xz
wireguard-openbsd-d2ef76ab1c21b6da43b8989fc75d9182666f6b50.zip
fiddle with filedesc lock to prevent recursion. crash and fix confirmed
by marc balmer
-rw-r--r--sys/miscfs/portal/portal_vnops.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/miscfs/portal/portal_vnops.c b/sys/miscfs/portal/portal_vnops.c
index de608b33825..7364180e291 100644
--- a/sys/miscfs/portal/portal_vnops.c
+++ b/sys/miscfs/portal/portal_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: portal_vnops.c,v 1.16 2003/09/23 16:51:13 millert Exp $ */
+/* $OpenBSD: portal_vnops.c,v 1.17 2004/02/21 20:08:32 tedu Exp $ */
/* $NetBSD: portal_vnops.c,v 1.17 1996/02/13 13:12:57 mycroft Exp $ */
/*
@@ -407,8 +407,10 @@ portal_open(v)
do {
struct mbuf *m = 0;
int flags = MSG_WAITALL;
+ fdpunlock(p->p_fd);
error = soreceive(so, (struct mbuf **) 0, &auio,
&m, &cm, &flags);
+ fdplock(p->p_fd, p);
if (error)
goto bad;