patch-1.3.69 linux/ipc/msg.c

Next file: linux/ipc/shm.c
Previous file: linux/init/main.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.68/linux/ipc/msg.c linux/ipc/msg.c
@@ -189,14 +189,15 @@
 	while (!nmsg) {
 		if (msq->msg_perm.seq != (unsigned int) msqid / MSGMNI)
 			return -EIDRM;
-		if ((msgflg & IPC_KERNELD) == 0)
+		if ((msgflg & IPC_KERNELD) == 0) {
 			/*
 			 * Non-root processes may receive from kerneld! 
 			 * i.e. no permission check if called from the kernel
 			 * otoh we don't want user level non-root snoopers...
 			 */
-		if (ipcperms (ipcp, S_IRUGO))
-			return -EACCES;
+			if (ipcperms (ipcp, S_IRUGO))
+				return -EACCES;
+		}
 		if (msgtyp == 0) 
 			nmsg = msq->msg_first;
 		else if (msgtyp > 0) {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this