DragonFlyBSD Kernel Audit
DF-2795 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/sysv_msg.c b/sys/kern/sysv_msg.c
index 1111111..2222222 100644
--- a/sys/kern/sysv_msg.c
+++ b/sys/kern/sysv_msg.c
@@ -601,8 +601,10 @@
 			/*
 			 * Make sure that the msq queue still exists
 			 */
 
-			if (msqptr->msg_qbytes == 0) {
+			if (msqptr->msg_qbytes == 0 ||
+			    msqptr->msg_perm.seq !=
+			    IPCID_TO_SEQ(uap->msqid)) {
 #ifdef MSG_DEBUG_OK
 				kprintf("msqid deleted\n");
 #endif