diff options
author | Al Viro <viro@ZenIV.linux.org.uk> | 2013-05-03 00:30:49 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-02 19:51:31 -0700 |
commit | ce857229e0c3adc211944a13a5579ef84fd7b4af (patch) | |
tree | f12310c2c6492dd7ef4b25dd0c6052f7a114b9cf /kernel/time/tick-broadcast.c | |
parent | 20a2078ce7705a6e0722ef5184336eb8657a58d8 (diff) |
ipc: fix GETALL/IPC_RM race for sysv semaphores
We can step on WARN_ON_ONCE() in sem_getref() if a semaphore is removed
just as we are about to call sem_getref() from semctl_main(); results
are not pretty.
We should fail with -EIDRM, same as if IPC_RM happened while we'd been
doing allocation there. This also expands sem_getref() at its only
callsite (and fixed there), while sem_getref_and_unlock() is simply
killed off - it has no callers at all.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/time/tick-broadcast.c')
0 files changed, 0 insertions, 0 deletions