oleaut32/tests: initialize pointer before sending it over the wire??

Dan Kegel dank at kegel.com
Fri Jun 20 23:56:01 CDT 2008


While looking at the valgrind warning in
http://kegel.com/wine/valgrind/logs-2008-06-20/vg-oleaut32_tmarshal.txt

 Conditional jump or move depends on uninitialised value(s)
    at  serialize_param (tmarshal.c:736)
    by  serialize_param (tmarshal.c:744)
    by  xCall (tmarshal.c:1414)
    by  ???
    by  func_tmarshal (tmarshal.c:1179)
    by  run_test (test.h:449)
    by  main (test.h:498)
  Uninitialised value was created by a stack allocation
    at  test_typelibmarshal (tmarshal.c:762)

The problem happens during a call to this method
where widget is a pointer to an uninitialized pointer
which will receive the pointer to the widget:

    interface IKindaEnumWidget : IUnknown
    {
        HRESULT Next(
                     [out] IWidget **widget);

I discovered that the attached patch prevented the problem.
I don't quite understand why; at first glance,
widget is an out parameter from the function,
why would it be dereferenced while serializing
the call?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: oleaut32-tests-tmarshal-next.patch
Type: text/x-diff
Size: 438 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20080620/b1ea30c3/attachment.patch 


More information about the wine-devel mailing list