Author: fireball Date: Thu Jul 23 15:16:59 2009 New Revision: 42154
URL: http://svn.reactos.org/svn/reactos?rev=42154&view=rev Log: - User server: only copy variable length data to the caller if a buffer was provided. Otherwise notify via a debug print that no buffer was provided. Fixes a crash at repainting.
Modified: branches/arwinss/reactos/subsystems/win32/win32k/wine/main.c
Modified: branches/arwinss/reactos/subsystems/win32/win32k/wine/main.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32... ============================================================================== --- branches/arwinss/reactos/subsystems/win32/win32k/wine/main.c [iso-8859-1] (original) +++ branches/arwinss/reactos/subsystems/win32/win32k/wine/main.c [iso-8859-1] Thu Jul 23 15:16:59 2009 @@ -130,13 +130,18 @@ if (reqinfo->data_count > 1) ExFreePool(RequestData);
/* Copy back the reply data if any */ - if (ReplySize) + if (ReplySize && reqinfo->reply_data) { /* Copy it */ RtlCopyMemory(reqinfo->reply_data, ReplyData, ReplySize);
/* Free temp storage */ ExFreePool(ReplyData); + } + else if (ReplySize) + { + DPRINT1("Caller didn't provide any storage for output data, not transferring anything.\n"); + ReplySize = 0; }
/* Set reply's error flag and size */