summarylogtreecommitdiffstats
path: root/steam.patch
diff options
context:
space:
mode:
Diffstat (limited to 'steam.patch')
-rw-r--r--steam.patch38
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 |