[PATCH v2 2/4] krnl386.exe16: NE files with OS type 0x00 (unknown) or with linker major

Martin Payne development at martinpayne.me.uk
Sat Dec 16 15:04:45 CST 2017


version 4 may also be Windows executables. Don't try to load NE files
with OS type of Windows/386. Even Windows/386 doesn't recognise these as
Windows executables.

Tested on Fedora 26 x86
---
 dlls/krnl386.exe16/ne_module.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
index e9009677d0..673b627208 100644
--- a/dlls/krnl386.exe16/ne_module.c
+++ b/dlls/krnl386.exe16/ne_module.c
@@ -597,11 +597,10 @@ static HMODULE16 build_module( const void *mapping, SIZE_T mapping_size, LPCSTR
 
     /* We now have a valid NE header */
 
-    /* check to be able to fall back to loading OS/2 programs as DOS
-     * FIXME: should this check be reversed in order to be less strict?
-     * (only fail for OS/2 ne_exetyp 0x01 here?) */
+    /* check to be able to fall back to loading OS/2 programs as DOS */
     if ((ne_header->ne_exetyp != 0x02 /* Windows */)
-        && (ne_header->ne_exetyp != 0x04) /* Windows 386 */)
+        && (ne_header->ne_exetyp != 0x00 /* Unknown - possible early 1.x or 2.x app */)
+        && (ne_header->ne_ver == 0x04 /* link4 version 4.x has no ne_exetyp field - possible early 1.x app */))
         return ERROR_BAD_FORMAT;
 
     size = sizeof(NE_MODULE) +
-- 
2.15.1.windows.2




More information about the wine-devel mailing list