From cf284afece70f1bee920c28b52ce29c5a928423f Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 10 Nov 2004 20:27:40 +0000
Subject: [PATCH] Bugfix: msgQueueFind() would return the first node (instead
 of NULL) if it couldn't find the requested node.

---
 src/xpdev/msg_queue.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/xpdev/msg_queue.c b/src/xpdev/msg_queue.c
index ee940a7d08..03787e087b 100644
--- a/src/xpdev/msg_queue.c
+++ b/src/xpdev/msg_queue.c
@@ -197,8 +197,12 @@ void* msgQueuePeek(msg_queue_t* q, long timeout)
 
 void* msgQueueFind(msg_queue_t* q, const void* data, size_t length)
 {
-	return listRemoveNode(msgQueueReadList(q)
-		,listFindNode(msgQueueReadList(q),data,length));
+	link_list_t*	list = msgQueueReadList(q);
+	list_node_t*	node;
+
+	if((node=listFindNode(list,data,length))==NULL)
+		return(NULL);
+	return listRemoveNode(list,node);
 }
 
 list_node_t* msgQueueFirstNode(msg_queue_t* q)
-- 
GitLab