[PATCH 5/5] rpcrt4: Don't reserve space in the buffer for reference pointers embedded in complex types.

Rob Shearman robertshearman at gmail.com
Thu Jul 3 17:28:02 CDT 2008


Ref pointers don't need a pointer ID and reserving space would render
the code incompatible with other clients. Note that the pointer
marshalling/unmarshalling functions didn't actually read/write pointer
IDs to/from the reserved space in the buffer.
---
 dlls/rpcrt4/ndr_marshall.c |   53 ++++++++++++++++++++-----------------------
 1 files changed, 25 insertions(+), 28 deletions(-)

Fixes this Valgrind warning for real now:
 Syscall param write(buf) points to uninitialised byte(s)
    at  (within /lib/ld-2.7.so)
    by  WriteFile (file.c:559)
    by  rpcrt4_conn_np_write (rpc_transport.c:404)
    by  rpcrt4_conn_write (rpc_binding.h:168)
    by  RPCRT4_SendWithAuth (rpc_message.c:533)
    by  RPCRT4_Send (rpc_message.c:675)
    by  I_RpcSend (rpc_message.c:1225)
    by  I_RpcSendReceive (rpc_message.c:1328)
    by  NdrSendReceive (ndr_clientserver.c:213)
    by  ept_insert (epm_c.c:108)
    by  RpcEpRegisterA (rpc_epmap.c:238)
    by  test_endpoint_mapper (rpc.c:699)
    by  func_rpc (rpc.c:736)
    by  run_test (test.h:449)
    by  main (test.h:498)
  Address 0x7f013c50 is 48 bytes inside a block of size 320 alloc'd
    at  notify_alloc (heap.c:191)
    by  RtlAllocateHeap (heap.c:1231)
    by  RPCRT4_SendWithAuth (rpc_message.c:492)
    by  RPCRT4_Send (rpc_message.c:675)
    by  I_RpcSend (rpc_message.c:1225)
    by  I_RpcSendReceive (rpc_message.c:1328)
    by  NdrSendReceive (ndr_clientserver.c:213)
    by  ept_insert (epm_c.c:108)
    by  RpcEpRegisterA (rpc_epmap.c:238)
    by  test_endpoint_mapper (rpc.c:699)
    by  func_rpc (rpc.c:736)
    by  run_test (test.h:449)
    by  main (test.h:498)
  Uninitialised value was created by a client request
    at  mark_block_uninitialized (heap.c:164)
    by  RtlAllocateHeap (heap.c:1239)
    by  I_RpcAllocate (rpcrt4_main.c:694)
    by  I_RpcGetBuffer (rpc_message.c:1070)
    by  NdrGetBuffer (ndr_clientserver.c:171)
    by  ept_insert (epm_c.c:86)
    by  RpcEpRegisterA (rpc_epmap.c:238)
    by  test_endpoint_mapper (rpc.c:699)
    by  func_rpc (rpc.c:736)
    by  run_test (test.h:449)
    by  main (test.h:498)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fdd802a10b3dbd8974b7fa70f580d43f3dc7538a.diff
Type: text/x-patch
Size: 5675 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080703/ab91c7e1/attachment-0001.bin 


More information about the wine-patches mailing list