Added patch to creating handles for new consoles when a new process is created.

This commit is contained in:
Erich E. Hoover
2015-01-03 23:59:01 -07:00
parent a5ec351f6e
commit d8cde81519
5 changed files with 46 additions and 1 deletions

View File

@@ -51,6 +51,7 @@ PATCHLIST := \
imm32-Cross_Thread_Access.ok \
include-Winetest.ok \
iphlpapi-TCP_Table.ok \
kernel32-Create_Handles_for_New_Consoles.ok \
kernel32-GetFinalPathNameByHandle.ok \
kernel32-GetNumaProcessorNode.ok \
kernel32-GetStringTypeW.ok \
@@ -715,6 +716,21 @@ iphlpapi-TCP_Table.ok:
echo '+ { "Erich E. Hoover", "iphlpapi: Implement AllocateAndGetTcpExTableFromStack.", 1 },'; \
) > iphlpapi-TCP_Table.ok
# Patchset kernel32-Create_Handles_for_New_Consoles
# |
# | This patchset fixes the following Wine bugs:
# | * [#36216] Hearthstone fails to start
# |
# | Modified files:
# | * dlls/kernel32/process.c
# |
.INTERMEDIATE: kernel32-Create_Handles_for_New_Consoles.ok
kernel32-Create_Handles_for_New_Consoles.ok:
$(call APPLY_FILE,kernel32-Create_Handles_for_New_Consoles/0001-kernel32-Allocate-console-handles-for-new-consoles-a.patch)
@( \
echo '+ { "Erich E. Hoover", "kernel32: Allocate console handles for new consoles at long as the process is not detached.", 1 },'; \
) > kernel32-Create_Handles_for_New_Consoles.ok
# Patchset kernel32-GetFinalPathNameByHandle
# |
# | This patchset fixes the following Wine bugs:

View File

@@ -0,0 +1,26 @@
From d0bb3326c980625e1b5424a3603928380878599f Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Sat, 3 Jan 2015 23:37:42 -0700
Subject: kernel32: Allocate console handles for new consoles at long as the
process is not detached.
---
dlls/kernel32/process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 0a087ab..ba59244 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -1679,7 +1679,7 @@ static startup_info_t *create_startup_info( LPCWSTR filename, LPCWSTR cmdline,
info->hstdin = wine_server_obj_handle( hstdin );
info->hstdout = wine_server_obj_handle( hstdout );
info->hstderr = wine_server_obj_handle( hstderr );
- if ((flags & (CREATE_NEW_CONSOLE | DETACHED_PROCESS)) != 0)
+ if (flags & DETACHED_PROCESS) /* FIXME: probably not correct, needs more tests */
{
/* this is temporary (for console handles). We have no way to control that the handle is invalid in child process otherwise */
if (is_console_handle(hstdin)) info->hstdin = wine_server_obj_handle( INVALID_HANDLE_VALUE );
--
1.9.1

View File

@@ -0,0 +1 @@
Fixes: [36216] Hearthstone fails to start