Author: jimtabor
Date: Wed Nov 4 08:14:53 2015
New Revision: 69810
URL:
http://svn.reactos.org/svn/reactos?rev=69810&view=rev
Log:
[Win32SS]
- Quick fix for double free unlink crash. See CORE-9210.
Modified:
trunk/reactos/win32ss/user/ntuser/msgqueue.c
Modified: trunk/reactos/win32ss/user/ntuser/msgqueue.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/msgque…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/msgqueue.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/msgqueue.c [iso-8859-1] Wed Nov 4 08:14:53 2015
@@ -840,8 +840,8 @@
if(SentMessage->Msg.hwnd == Window->head.h)
{
- TRACE("Remove Window Messages From Sent Queue\n");
-
+ ERR("Remove Window Messages %p From Sent Queue\n",SentMessage);
+#if 0 // Should mark these as invalid and allow the rest clean up, so far no harm by just
commenting out. See CORE-9210.
ClearMsgBitsMask(pti, SentMessage->QS_Flags);
/* wake the sender's thread */
@@ -860,6 +860,8 @@
FreeUserMessage(SentMessage);
CurrentEntry = pti->SentMessagesListHead.Flink;
+#endif
+ CurrentEntry = CurrentEntry->Flink;
}
else
{
@@ -2181,7 +2183,7 @@
CurrentEntry = pti->SentMessagesListHead.Flink;
CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE,
ListEntry);
- ERR("Thread Cleanup Sent Messages\n");
+ ERR("Thread Cleanup Sent Messages %p\n",CurrentSentMessage);
/* wake the sender's thread */
if (CurrentSentMessage->pkCompletionEvent != NULL)
@@ -2208,7 +2210,7 @@
CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE,
ListEntry);
CurrentEntry = CurrentEntry->Flink;
- TRACE("Found troubled messages on the list\n");
+ TRACE("Found troubled messages %p on the list\n",CurrentSentMessage);
if ( pti == CurrentSentMessage->ptiReceiver )
{