diff options
author | Jamie Gritton <jamie@FreeBSD.org> | 2021-02-26 03:52:58 +0000 |
---|---|---|
committer | Jamie Gritton <jamie@FreeBSD.org> | 2021-02-26 03:52:58 +0000 |
commit | 108a9384e9e945cccba73c959f7e9cdb023cbcad (patch) | |
tree | 5301129c9c988a260f213304e09921f2b1282a62 | |
parent | 1fc928770b5db5bafb7386c7a3bd4918a0d7e876 (diff) | |
download | src-108a9384e9e945cccba73c959f7e9cdb023cbcad.tar.gz src-108a9384e9e945cccba73c959f7e9cdb023cbcad.zip |
jail: Fix locking on an early jail_set error.
I had locked allprison_lock without immediately setting PD_LIST_LOCKED.
-rw-r--r-- | sys/kern/kern_jail.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index c58751e6f5fe..c8dcf928dfaa 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -998,13 +998,13 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags) jid = 0; } sx_xlock(&allprison_lock); + drflags = PD_LIST_XLOCKED; ppr = mypr; if (!prison_isalive(ppr)) { /* This jail is dying. This process will surely follow. */ error = EAGAIN; goto done_deref; } - drflags = PD_LIST_XLOCKED; if (jid != 0) { if (jid < 0) { error = EINVAL; |