Hi,
As the authors of these tests, I'd thought to write directly to you. This rpcrt4
stuff is way over my head.
The attached patch shows where Win95, Win98 and NT4 crash. The crash in
test_ndr_allocate() actually happens at the assignment "mem_list_v2 =
StubMsg.pMemoryList;".
Any idea(s). How can I help getting this resolved?
--
Cheers,
Paul.
diff --git a/dlls/rpcrt4/tests/ndr_marshall.c b/dlls/rpcrt4/tests/ndr_marshall.c
index efbec2b..3252466 100644
--- a/dlls/rpcrt4/tests/ndr_marshall.c
+++ b/dlls/rpcrt4/tests/ndr_marshall.c
@@ -772,6 +772,8 @@ todo_wine {
Passing a NULL ptr while we're a client && !must_alloc
crashes on Windows, so we won't do that. */
+ if (0)
+ {
mem = NULL;
StubMsg.IsClient = 0;
StubMsg.Buffer = StubMsg.BufferStart;
@@ -782,6 +784,7 @@ todo_wine {
ok(my_alloc_called == num_additional_allocs, "%s: my_alloc got called %d times\n", msgpfx, my_alloc_called);
my_alloc_called = 0;
ok(StubMsg.MemorySize == 0, "%s: memorysize touched in unmarshal\n", msgpfx);
+ }
/*** now must_alloc is true ***/
@@ -1383,6 +1386,11 @@ static void test_ndr_allocate(void)
NdrClientInitializeNew(&RpcMessage, &StubMsg, &StubDesc, 0);
ok(StubMsg.pMemoryList == NULL, "memlist %p\n", StubMsg.pMemoryList);
+ if (StubMsg.pMemoryList != NULL)
+ {
+ win_skip("Something is wrong\n");
+ return;
+ }
my_alloc_called = my_free_called = 0;
p1 = NdrAllocate(&StubMsg, 10);
p2 = NdrAllocate(&StubMsg, 24);