Bug #11515
closedCreateProcessW() can cause "Invalid access to memory location"
Description
The second argument for CreateProcessW()
needs to not be a constant because it may be modified:
From https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx :
The Unicode version of this function, CreateProcessW, can modify the contents of this string. Therefore, this parameter cannot be a pointer to read-only memory (such as a const variable or a literal string). If this parameter is a constant string, the function may cause an access violation.
This would explain sporadic "Invalid access to memory location" errors people see on Windows.
To resolve ths, cmd
should be copied into a temporary variable before CreateProcessW() is called.
I've attached a patch that might work, but I'm not an expert C/Windows programmer.
Files