ipc: modify message queue accounting to not take kernel data structures into account
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / ipc / msg.c
index 558aa91186b6ced1a27b1e05b65c5ee129e0a175..52770bfde2a5afe9eaf2f9694ed4a74250ac89c1 100644 (file)
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -885,6 +885,8 @@ long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp, int msgfl
                return -EINVAL;
 
        if (msgflg & MSG_COPY) {
+               if ((msgflg & MSG_EXCEPT) || !(msgflg & IPC_NOWAIT))
+                       return -EINVAL;
                copy = prepare_copy(buf, min_t(size_t, bufsz, ns->msg_ctlmax));
                if (IS_ERR(copy))
                        return PTR_ERR(copy);