http://bugs.winehq.org/show_bug.cgi?id=13394
--- Comment #22 from Lionel Debroux lionel_debroux@yahoo.fr 2009-04-13 04:24:43 --- Created an attachment (id=20414) --> (http://bugs.winehq.org/attachment.cgi?id=20414) Check the result of a HeapAlloc() against NULL
Nikolay Sivov sent the patch he posted here to wine-patches: http://www.winehq.org/pipermail/wine-patches/2009-January/068428.html
James Hawkins replied that the functionality should be moved to copy_files(): http://www.winehq.org/pipermail/wine-devel/2009-January/072480.html
Nikolay modified his patch to move the code to copy_files() and decide whether to use the current directory upon flTo->feFiles == NULL: http://www.winehq.org/pipermail/wine-patches/2009-January/068603.html That looks reasonable to me, because of ZeroMemory(&flTo, sizeof(FILE_LIST)); in SHFileOperationW, and parse_file_list returning an error if its szFiles argument is an empty string, before allocating flList (flTo, in this case) ->feFiles.
Is there something wrong with Nikolay's second try (e.g. a failure on native Windows hosts) ?
While checking Nikolay's patch, I found one place where the result of a HeapAlloc invocation is not checked against NULL. I'm attaching a patch for it.