summaryrefslogtreecommitdiff
path: root/src/objcodes.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/objcodes.c')
-rw-r--r--src/objcodes.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/objcodes.c b/src/objcodes.c
index 8903bd338..e1a3b17e8 100644
--- a/src/objcodes.c
+++ b/src/objcodes.c
@@ -82,9 +82,13 @@ make_objcode_by_mmap (int fd)
struct scm_objcode *p;
ret = fstat (fd, &st);
- if ((ret < 0) || (st.st_size <= strlen (OBJCODE_COOKIE)))
+ if (ret < 0)
SCM_SYSERROR;
+ if (st.st_size <= strlen (OBJCODE_COOKIE))
+ scm_misc_error (FUNC_NAME, "object file too small (~a bytes)",
+ SCM_LIST1 (SCM_I_MAKINUM (st.st_size)));
+
addr = mmap (0, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (addr == MAP_FAILED)
SCM_SYSERROR;