From fbfd1d2862a8316c7191bc551c6a842e6918abb0 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 4 May 2013 10:25:11 -0700 Subject: ipc: fix double sem unlock in semctl error path Fix another ipc locking buglet introduced by the scalability patches: when semctl_down() was changed to delay the semaphore locking, one error path for security_sem_semctl() went through the semaphore unlock logic even though the semaphore had never been locked. Introduced by commit 16df3674efe3 ("ipc,sem: do not hold ipc lock more than necessary") Acked-by: Davidlohr Bueso Cc: Rik van Riel Cc: Al Viro Signed-off-by: Linus Torvalds --- ipc/sem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ipc/sem.c') diff --git a/ipc/sem.c b/ipc/sem.c index 8f5aa34f8d3..1f8f01a542d 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -1280,7 +1280,7 @@ static int semctl_down(struct ipc_namespace *ns, int semid, err = security_sem_semctl(sma, cmd); if (err) { rcu_read_unlock(); - goto out_unlock; + goto out_up; } switch(cmd){ -- cgit v1.2.3