Free all messages in LpcpDeletePort.
authorHartmut Birr <osexpert@googlemail.com>
Fri, 16 Sep 2005 15:18:23 +0000 (15:18 +0000)
committerHartmut Birr <osexpert@googlemail.com>
Fri, 16 Sep 2005 15:18:23 +0000 (15:18 +0000)
svn path=/trunk/; revision=17882

reactos/ntoskrnl/lpc/close.c

index b36162f..1091bfc 100644 (file)
@@ -87,9 +87,27 @@ LpcpClosePort (PVOID ObjectBody, ULONG       HandleCount)
 VOID STDCALL
 LpcpDeletePort (PVOID  ObjectBody)
 {
-   //   PEPORT Port = (PEPORT)ObjectBody;
+   PLIST_ENTRY Entry;
+   PQUEUEDMESSAGE      Message;
 
-   //   DPRINT1("Deleting port %x\n", Port);
+   PEPORT Port = (PEPORT)ObjectBody;
+
+   DPRINT("Deleting port %x\n", Port);
+
+   /* Free all waiting messages */
+   while (!IsListEmpty(&Port->QueueListHead))
+     {
+       Entry = RemoveHeadList(&Port->QueueListHead);
+       Message = CONTAINING_RECORD (Entry, QUEUEDMESSAGE, QueueListEntry);
+       ExFreePool(Message);
+     }
+
+   while (!IsListEmpty(&Port->ConnectQueueListHead))
+     {
+       Entry = RemoveHeadList(&Port->ConnectQueueListHead);
+       Message = CONTAINING_RECORD (Entry, QUEUEDMESSAGE, QueueListEntry);
+       ExFreePool(Message);
+     }
 }