diff options
author | 2004-02-21 20:08:32 +0000 | |
---|---|---|
committer | 2004-02-21 20:08:32 +0000 | |
commit | d2ef76ab1c21b6da43b8989fc75d9182666f6b50 (patch) | |
tree | 5e2a39afd3b4377ba27c6e89ddaf6de1da6ee825 | |
parent | Remove left-over dependencies on the old rcons code. (diff) | |
download | wireguard-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.c | 4 |
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; |