2008/7/2 Dan Kegel dank@kegel.com:
Hi Rob! Could you have a look at these fresh warnings in rpcrt4/tests/server? Thanks...
Hi Dan,
The following warning is caused by the generated code for non-encapsulated unions not setting _StubMsg.MaxCount before calling the relevant phase function. However, looking in detail at this bug brings up a few other issues with the code which need to be fixed.
http://kegel.com/wine/valgrind/logs-2008-07-01/vg-rpcrt4_server-diff.txt
- Syscall param socketcall.send(msg) points to uninitialised byte(s)
...
- by NdrSendReceive (ndr_clientserver.c:214)
- by square_unencu (server_c.c:2467)
- by union_tests (server.c:889)
- by run_tests (server.c:1241)
- by client (server.c:1260)
- by func_server (server.c:1357)
- by run_test (test.h:449)
- by main (test.h:498)
- Address 0x7f01350c is 28 bytes inside a block of size 36 alloc'd
- at notify_alloc (heap.c:191)
...
- by NdrSendReceive (ndr_clientserver.c:214)
- by square_unencu (server_c.c:2467)
- by union_tests (server.c:889)
- by run_tests (server.c:1241)
- by client (server.c:1260)
- by func_server (server.c:1357)
- by run_test (test.h:449)
- by main (test.h:498)
- Uninitialised value was created by a stack allocation
- at square_unencu (server_c.c:2424)
...
- Syscall param write(buf) points to uninitialised byte(s)
- at (within /lib/ld-2.7.so)
- by WriteFile (file.c:559)
...
- by NdrSendReceive (ndr_clientserver.c:214)
- by square_unencu (server_c.c:2467)
- by union_tests (server.c:889)
- by run_tests (server.c:1241)
- by client (server.c:1275)
- by func_server (server.c:1357)
- by run_test (test.h:449)
- by main (test.h:498)
- Address 0x7f013524 is 28 bytes inside a block of size 36 alloc'd
- at notify_alloc (heap.c:191)
...
- by NdrSendReceive (ndr_clientserver.c:214)
- by square_unencu (server_c.c:2467)
- by union_tests (server.c:889)
- by run_tests (server.c:1241)
- by client (server.c:1275)
- by func_server (server.c:1357)
- by run_test (test.h:449)
- by main (test.h:498)
- Uninitialised value was created by a stack allocation
- at square_unencu (server_c.c:2424)
...
The following warning is caused simply by a missing call to _StubMsg.pfnFree in the generated code:
- 24 bytes in 2 blocks are definitely lost
- at malloc (vg_replace_malloc.c:207)
- by MIDL_user_allocate (server.c:53)
- by s_get_s123 (server.c:538)
- by IServer_get_s123 (server_s.c:4545)
- by process_request_packet (rpc_server.c:290)
- by RPCRT4_process_packet (rpc_server.c:345)
- by RPCRT4_worker_thread (rpc_server.c:362)
- by worker_thread_proc (threadpool.c:113)
- by ??? (thread.c:128)
- by call_thread_func (thread.c:383)
- by start_thread (thread.c:443)
- by start_thread (in /lib/tls/i686/cmov/libpthread-2.7.so)
- by clone (in /lib/tls/i686/cmov/libc-2.7.so)