From 5a0d9e57513dd674cb0b15eb66fad0d4978eb72a Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Sun, 18 Mar 2018 13:38:13 -0700 Subject: [PATCH] VerifyREL module filetype before trying to load --- src/vmsrc/apple/sossys.pla | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/vmsrc/apple/sossys.pla b/src/vmsrc/apple/sossys.pla index 2d1d79d..4dc0ee9 100755 --- a/src/vmsrc/apple/sossys.pla +++ b/src/vmsrc/apple/sossys.pla @@ -1025,7 +1025,7 @@ def loadmod(mod)#1 word addr, defaddr, modaddr, modfix, modofst, modend word deftbl, deflast, codeseg word moddep, rld, esd, sym - byte lerr, defext, str[16], filename[33] + byte lerr, defext, fileinfo[], str[16], filename[33] byte header[128] lerr = 0 // @@ -1040,6 +1040,15 @@ def loadmod(mod)#1 refnum = open(strcpy(@filename,strcat(strcpy(@header, @sysmods), @filename))) fin if refnum + header.0 = 3 + header:1 = @filename + header:3 = @fileinfo + header.5 = 2 + if not syscall($C4, @header) and fileinfo.1 <> $FE // Make sure it's a REL module + close(refnum) + perr = $4A // Incompatible type + return -perr + fin rdlen = read(refnum, @header, 128) modsize = header:0 moddep = @header.1