1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 |
|