Alexandre Julliard : kernel32: Make sure the process has an entry point before starting it.

Alexandre Julliard julliard at winehq.org
Thu Feb 26 09:05:23 CST 2009


Module: wine
Branch: master
Commit: 825d7fda6c3b45ca089f32e1940b68e6dbad9d53
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=825d7fda6c3b45ca089f32e1940b68e6dbad9d53

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Feb 26 13:19:43 2009 +0100

kernel32: Make sure the process has an entry point before starting it.

---

 dlls/kernel32/process.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 405bfc7..c0e27fc 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -898,6 +898,13 @@ static void start_process( void *arg )
         entry = (LPTHREAD_START_ROUTINE)((char *)peb->ImageBaseAddress +
                                          nt->OptionalHeader.AddressOfEntryPoint);
 
+        if (!nt->OptionalHeader.AddressOfEntryPoint)
+        {
+            ERR( "%s doesn't have an entry point, it cannot be executed\n",
+                 debugstr_w(peb->ProcessParameters->ImagePathName.Buffer) );
+            ExitThread( 1 );
+        }
+
         if (TRACE_ON(relay))
             DPRINTF( "%04x:Starting process %s (entryproc=%p)\n", GetCurrentThreadId(),
                      debugstr_w(peb->ProcessParameters->ImagePathName.Buffer), entry );




More information about the wine-cvs mailing list