diff options
Diffstat (limited to 'steam.patch')
-rw-r--r-- | steam.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/steam.patch b/steam.patch new file mode 100644 index 000000000000..deef1b5cd8f8 --- /dev/null +++ b/steam.patch @@ -0,0 +1,38 @@ +diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c +index 6e7b23e..63eda34 100644 +--- a/dlls/kernel32/process.c ++++ b/dlls/kernel32/process.c +@@ -2429,6 +2429,33 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A + return FALSE; + if (hFile == INVALID_HANDLE_VALUE) goto done; + ++ /* CROSSOVER HACK: bug 13322 (winehq bug 39403) ++ * Insert --no-sandbox in command line of Steam's web helper process to ++ * work around problems hooking our ntdll exports. */ ++ { ++ static const WCHAR steamwebhelperexeW[] = {'s','t','e','a','m','w','e','b','h','e','l','p','e','r','.','e','x','e',0}; ++ static const WCHAR nosandboxW[] = {' ','-','-','n','o','-','s','a','n','d','b','o','x',0}; ++ ++ if (strstrW(name, steamwebhelperexeW)) ++ { ++ LPWSTR new_command_line; ++ ++ new_command_line = HeapAlloc(GetProcessHeap(), 0, ++ sizeof(WCHAR) * (strlenW(tidy_cmdline) + strlenW(nosandboxW) + 1)); ++ ++ if (!new_command_line) return FALSE; ++ ++ strcpyW(new_command_line, tidy_cmdline); ++ strcatW(new_command_line, nosandboxW); ++ ++ TRACE("CrossOver hack changing command line to %s\n", debugstr_w(new_command_line)); ++ ++ if (tidy_cmdline != cmd_line) HeapFree( GetProcessHeap(), 0, tidy_cmdline ); ++ tidy_cmdline = new_command_line; ++ } ++ } ++ /* end CROSSOVER HACK */ ++ + /* Warn if unsupported features are used */ + + if (flags & (IDLE_PRIORITY_CLASS | HIGH_PRIORITY_CLASS | REALTIME_PRIORITY_CLASS | |