http://bugs.winehq.org/show_bug.cgi?id=13152
--- Comment #6 from Dmitry Timoshkov dmitry@codeweavers.com 2008-05-15 08:44:44 --- The problem is caused by the application bug. It does:
str1 = SysAllocStringLen("Reply", 5); SysFreeString(str1); str2 = SysAllocStringLen(str1, 5);
i.e. it passes a just freed memory block as a string pointer to copy data from. Wine allocates new memory block in the place of just freed one, and simultaneously changes some internal data structures which happen to be inside of a previously freed memory block, and that corrupts the passed in data.
According to a snoop trace native oleaut32 doesn't do memory allocations on each SysAllocStringLen call, and probably uses some internal cache.
I'd say this bug is a WONTFIX, please report the problem to the application developers.