summarylogtreecommitdiffstats
path: root/0009-kernel32-dont-create-console-when-not-cui.patch
blob: e034e84c5bd8cce573bae7b316d94afd40317737 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c
index fa143857bc2..aa37d92ef70 100644
--- a/dlls/kernelbase/console.c
+++ b/dlls/kernelbase/console.c
@@ -2342,6 +2342,13 @@ void init_console( void )
         if (RtlImageNtHeader( mod )->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_CUI)
             alloc_console( no_window );
     }
-    else if (params->ConsoleHandle && params->ConsoleHandle != CONSOLE_HANDLE_SHELL_NO_WINDOW)
-        create_console_connection( params->ConsoleHandle );
+    else if (params->ConsoleHandle)
+    {
+        HMODULE mod = GetModuleHandleW( NULL );
+        if (params->ConsoleHandle != CONSOLE_HANDLE_SHELL_NO_WINDOW &&
+            RtlImageNtHeader( mod )->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_CUI)
+            create_console_connection( params->ConsoleHandle );
+        else
+            params->ConsoleHandle = NULL;
+    }
 }