From: Davidlohr Bueso Date: Tue, 26 Mar 2013 23:26:03 +0000 (+1100) Subject: ipc, sem: prevent possible deadlock X-Git-Tag: next-20130402~2^2~98 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=0b33f20865bed709fd231bce1fcf09040e5bf772;p=karo-tx-linux.git ipc, sem: prevent possible deadlock In semctl_main(), when cmd == GETALL, we're locking sma->sem_perm.lock (through sem_lock_and_putref), yet after the conditional, we lock it again. Unlock sma right after exiting the conditional. Signed-off-by: Davidlohr Bueso Reviewed-by: Rik van Riel Signed-off-by: Andrew Morton --- diff --git a/ipc/sem.c b/ipc/sem.c index 0dcb73933c25..94b9a0ac60aa 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -1115,6 +1115,7 @@ static int semctl_main(struct ipc_namespace *ns, int semid, int semnum, err = -EIDRM; goto out_free; } + sem_unlock(sma, -1); } sem_lock(sma, NULL, -1);