aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linux/linux_futex.c
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2009-06-14 17:53:55 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2009-06-14 17:53:55 +0000
commit0046fd5dd9543d94d3e30711303b90762a322a2f (patch)
tree26aa707850398fb42f8fa69f09cbc82b650a68c3 /sys/compat/linux/linux_futex.c
parentf0557704cfaa58a0709490576c07c3046419cdd0 (diff)
downloadsrc-0046fd5dd9543d94d3e30711303b90762a322a2f.tar.gz
src-0046fd5dd9543d94d3e30711303b90762a322a2f.zip
Unlock process lock when return error from getrobustlist call.
Tested by: Alexander Best <alexbestms at math uni-muenster de> Approved by: kib (mentor) MFC after: 3 days
Notes
Notes: svn path=/head/; revision=194203
Diffstat (limited to 'sys/compat/linux/linux_futex.c')
-rw-r--r--sys/compat/linux/linux_futex.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c
index d72a699cadea..b9f570ba7b10 100644
--- a/sys/compat/linux/linux_futex.c
+++ b/sys/compat/linux/linux_futex.c
@@ -707,8 +707,10 @@ linux_get_robust_list(struct thread *td, struct linux_get_robust_list_args *args
/* XXX: ptrace? */
if (priv_check(td, PRIV_CRED_SETUID) ||
priv_check(td, PRIV_CRED_SETEUID) ||
- p_candebug(td, p))
+ p_candebug(td, p)) {
+ PROC_UNLOCK(p);
return (EPERM);
+ }
head = em->robust_futexes;
PROC_UNLOCK(p);