Commit a9950e3c authored by Ge van Geldorp's avatar Ge van Geldorp Committed by Alexandre Julliard

rpcrt4/tests: Remove NdrVaryingArrayUnmarshall() test, it is broken on Windows.

The failures in rpcrt4:server on Windows are caused by an access violation thrown in NdrVaryingArrayUnmarshall() called from get_5numbers(). I've created a minimum get_5numbers() test with Microsoft tools and that throws the same access violation. The access violation disappears when zeroing out the StubMsg before calling NdrClientInitializeNew(), so my guess is Windows NdrVaryingArrayUnmarshall() uses an uninitialized member.
parent 8defde71
......@@ -660,19 +660,6 @@ s_context_handle_test(void)
}
void
s_get_5numbers(int count, pints_t n[5])
{
int i;
for (i = 0; i < count; i++)
{
n[i].pi = midl_user_allocate(sizeof(*n[i].pi));
*n[i].pi = i;
n[i].ppi = NULL;
n[i].pppi = NULL;
}
}
void
s_get_numbers(int length, int size, pints_t n[])
{
int i;
......@@ -1239,11 +1226,6 @@ array_tests(void)
pi = HeapAlloc(GetProcessHeap(), 0, sizeof(*pi));
*pi = -1;
api[0].pi = pi;
get_5numbers(1, api);
ok(api[0].pi == pi, "RPC varying array [out] pointer changed from %p to %p\n", pi, api[0].pi);
ok(*api[0].pi == 0, "pi unmarshalled incorrectly %d\n", *api[0].pi);
api[0].pi = pi;
get_numbers(1, 1, api);
ok(api[0].pi == pi, "RPC conformant varying array [out] pointer changed from %p to %p\n", pi, api[0].pi);
ok(*api[0].pi == 0, "pi unmarshalled incorrectly %d\n", *api[0].pi);
......
......@@ -335,7 +335,6 @@ cpp_quote("#endif")
[size_is(size), length_is(length)] pints_t numbers[];
} numbers_struct_t;
void get_5numbers([in] int count, [out, length_is(count)] pints_t pn[5]);
void get_numbers([in] int length, [in] int size, [out, length_is(length), size_is(size)] pints_t pn[]);
void get_numbers_struct([out] numbers_struct_t **ns);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment