diff options
author | 1995-11-22 11:05:19 +0000 | |
---|---|---|
committer | 1995-11-22 11:05:19 +0000 | |
commit | c92f752b105f687cc059995b02ce5d84093a8efa (patch) | |
tree | 494b69e1afecf5774363904ec543ab10462c3c59 /sys/kern/kern_exit.c | |
parent | change ZLRB_RING_SIZE to 4096 (diff) | |
download | wireguard-openbsd-c92f752b105f687cc059995b02ce5d84093a8efa.tar.xz wireguard-openbsd-c92f752b105f687cc059995b02ce5d84093a8efa.zip |
release text vnode before releasing credentials. vnode releasing can
block, but credentials should be alive until the process is really
dead. from tegge@idt.unit.no; netbsd pr#1767
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r-- | sys/kern/kern_exit.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 4212de82b68..466dd88ddc5 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -338,6 +338,12 @@ loop: (void)chgproccnt(p->p_cred->p_ruid, -1); /* + * Release reference to text vnode + */ + if (p->p_textvp) + vrele(p->p_textvp); + + /* * Free up credentials. */ if (--p->p_cred->p_refcnt == 0) { @@ -346,12 +352,6 @@ loop: } /* - * Release reference to text vnode - */ - if (p->p_textvp) - vrele(p->p_textvp); - - /* * Finally finished with old proc entry. * Unlink it from its process group and free it. */ |