Move fasl version check earlier.
authorTaylor R Campbell <campbell@mumble.net>
Tue, 11 Dec 2018 15:48:03 +0000 (15:48 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Tue, 11 Dec 2018 15:48:03 +0000 (15:48 +0000)
This breaks INHIBIT_FASL_VERSION_CHECK -- but that was already broken
so that Scheme would abort (!) before even getting to the check,
because of the conditional in fasl_object_address which is called by
decode_fasl_header.

If someone wants to revive INHIBIT_FASL_VERSION_CHECK, be my guest,
though it might be easier to do whatever you're trying to do with the
portable fasdumper instead.

src/microcode/fasl.c

index c2c777fe01dc1b0a4f4727a6c73d062ea7947916..672ab9cbf48d620027379cd0c703c9bb615677a2 100644 (file)
@@ -209,6 +209,8 @@ decode_fasl_header (SCHEME_OBJECT * raw, fasl_header_t * h)
     (FASLHDR_VERSION (h)) = (FASL_VERSION (object));
     (FASLHDR_ARCH (h)) = (FASL_ARCH (object));
   }
+  if ((check_fasl_version (h)) != FASL_FILE_FINE)
+    return (false);
   {
     SCHEME_OBJECT object = (raw[FASL_OFFSET_CI_VERSION]);
     (FASLHDR_CC_VERSION (h)) = (CI_VERSION (object));