diff options
Diffstat (limited to 'ipc/msg.c')
-rw-r--r-- | ipc/msg.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ipc/msg.c b/ipc/msg.c index a80aaf463d9c..09a1f41e6595 100644 --- a/ipc/msg.c +++ b/ipc/msg.c @@ -687,7 +687,12 @@ long do_msgsnd(int msqid, long mtype, void __user *mtext, goto out_unlock_free; } ss_add(msq, &s); - ipc_rcu_getref(msq); + + if (!ipc_rcu_getref(msq)) { + err = -EIDRM; + goto out_unlock_free; + } + msg_unlock(msq); schedule(); |