https://bugs.winehq.org/show_bug.cgi?id=30378
--- Comment #18 from Qian Hong fracting@gmail.com --- Created attachment 49575 --> https://bugs.winehq.org/attachment.cgi?id=49575 Patch: set *lpcDevices = 1
This patch should really fix the bug...
https://testbot.winehq.org/JobDetails.pl?Key=8927&log_203=1#k203
I was 'fixing' the bug in a wrong way, maybe by changing the memory layout, so the application didn't crash after changing.
The real problem is, *lpcDevices should equal to the number of devices found. The application will alloc a buffer with length of sizeof(RASDEVINFOA)* (*lpDevices), if *lpDevices is zero, strcpy will unexpectedly over write the memory buffer and crashing during freeing.