diff -urN -X dontdiff linux/ipc/msg.c linux-tk/ipc/msg.c --- linux/ipc/msg.c Wed Aug 29 18:26:39 2001 +++ linux-tk/ipc/msg.c Wed Aug 29 18:21:42 2001 @@ -742,6 +742,10 @@ if(msq==NULL) return -EINVAL; retry: + err = -EIDRM; + if (msg_checkid(msq,msqid)) + goto out_unlock; + err=-EACCES; if (ipcperms (&msq->q_perm, S_IRUGO)) goto out_unlock; diff -urN -X dontdiff linux/ipc/shm.c linux-tk/ipc/shm.c --- linux/ipc/shm.c Wed Aug 29 18:26:33 2001 +++ linux-tk/ipc/shm.c Wed Aug 29 18:26:15 2001 @@ -606,6 +606,11 @@ shp = shm_lock(shmid); if(shp == NULL) return -EINVAL; + err = shm_checkid(shp,shmid); + if (err) { + shm_unlock(shmid); + return err; + } if (ipcperms(&shp->shm_perm, acc_mode)) { shm_unlock(shmid); return -EACCES;