From 825d7fda6c3b45ca089f32e1940b68e6dbad9d53 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 26 Feb 2009 13:19:43 +0100 Subject: [PATCH] kernel32: Make sure the process has an entry point before starting it. --- dlls/kernel32/process.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c index 405bfc7d5b5..c0e27fcb530 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 );