summaryrefslogtreecommitdiff
path: root/sys/miscfs
diff options
context:
space:
mode:
authorTed Unangst <tedu@cvs.openbsd.org>2004-02-21 20:08:33 +0000
committerTed Unangst <tedu@cvs.openbsd.org>2004-02-21 20:08:33 +0000
commit1711ce4a9b0c09f2c139a422bd03f9dfd3a1023d (patch)
tree4798563ba77a8075fed2e0128fea35afe2c1c9e4 /sys/miscfs
parent5c4971c6a7ae35f395b51587d0d5634df1878005 (diff)
fiddle with filedesc lock to prevent recursion. crash and fix confirmed
by marc balmer
Diffstat (limited to 'sys/miscfs')
-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;