diff options
Diffstat (limited to 'ipc')
| -rw-r--r-- | ipc/msg.c | 2 | 
1 files changed, 2 insertions, 0 deletions
diff --git a/ipc/msg.c b/ipc/msg.c index 245db1140ad6..649853105a5d 100644 --- a/ipc/msg.c +++ b/ipc/msg.c @@ -901,6 +901,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);  |