February 4, 2021 3:02 PM, "Alexandre Julliard" julliard@winehq.org wrote:
"Erich E. Hoover" erich.e.hoover@gmail.com writes:
On Thu, Feb 4, 2021 at 1:35 PM Chip Davis cdavis@codeweavers.com wrote:
... It looks like that change was intended to prevent accessing IRP memory after it might have been freed. The thing to do, then, is to copy the status out of the IOSB into a local variable before calling IoCompleteRequest().
That makes sense, I ran into a somewhat similar issue with a previous version of patch 2. I'll try to look into putting together an appropriate update for dlls/mountmgr.sys/device.c:harddisk_ioctl this evening, did you notice any other issues with this series?
Note that it shouldn't make any difference, because the IRP result has been sent to the server already.
I have patches in staging which make the server use the dispatch result in the case of a non-overlapped I/O. This is intended to fix drivers like SafeDisc that assume that the dispatch result and not the IOSB result will be returned. They're disabled in part because of this issue.
Chip