[Bug 36092] Microsoft Office 2013 (15.0) web installer crashes on unimplemented function IPHLPAPI.DLL.CreateSortedAddressPairs

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Jul 14 16:43:33 CDT 2014


http://bugs.winehq.org/show_bug.cgi?id=36092

--- Comment #21 from Derek Atkins <warlord at mit.edu> ---
Bruno,
I'm looking more closely at your patch and either I'm confused or there's a
bug.  In particular, the SOCKADDR_IN6_PAIR is defined to be a structure of two
PSOCKADDR_IN6 members, i.e., two pointers to SOCKADDR_IN6.  You allocate the
returned structure via:

 
retaddr=HeapAlloc(GetProcessHeap(),0,sizeof(SOCKADDR_IN6_PAIR)*destinationcount);

Which unless I'm confused will allocate the array of PAIR objects, but wont
deep-allocate the SOCKADDR_IN6 pointers in each object.  Assuming I'm correct
that HeapAlloc() works like a Unix "malloc" then your bug is on the next line
in the loop, where you memset into the (non-allocated) object:

  memset(retaddr[i].SourceAddress,0,sizeof(SOCKADDR_IN6));

At this point retaddr[i].SourceAddress should, unless I'm confused, be a NULL
pointer (or garbage)..  I don't see where you ever allocate the pointer?  For
example I just added some code to your patch to output the Source and Dest
address pointers and indeed they are garbage:

fixme:iphlpapi:CreateSortedAddressPairs source (nil), sourcecount 0,
destination 0x511ba8, destcount 15, sortoptions 0, sortedaddr 0x32e684,
sortedcount 0x32e66c
fixme:iphlpapi:CreateSortedAddressPairs SourceAddress: 0x110118, DestAddress:
0x110108
fixme:iphlpapi:CreateSortedAddressPairs SourceAddress: 0x1, DestAddress: 0x6
wine: Unhandled page fault on write access to 0x00000001 at address 0x7e69bdff
(thread 0009), starting debugger...
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr
0x7bc50e20

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list