guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 01/01: Fix regression in non-mmap fallback elf loader


From: Mike Gran
Subject: [Guile-commits] 01/01: Fix regression in non-mmap fallback elf loader
Date: Fri, 3 Mar 2017 12:57:16 -0500 (EST)

mike121 pushed a commit to branch master
in repository guile.

commit 8dc0e8d622cf699885c4b1b4277cd7aab700386d
Author: Mike Gran <address@hidden>
Date:   Fri Mar 3 09:50:27 2017 -0800

    Fix regression in non-mmap fallback elf loader
    
    * libguile/loader.c [!HAVE_SYS_MMAN_H] (map_file_contents): updated
      variables and function calls to the current names
---
 libguile/loader.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/libguile/loader.c b/libguile/loader.c
index a4c3e88..558a722 100644
--- a/libguile/loader.c
+++ b/libguile/loader.c
@@ -480,7 +480,7 @@ map_file_contents (int fd, size_t len, int *is_read_only)
     SCM_SYSERROR;
   *is_read_only = 1;
 #else
-  if (lseek (fd, 0, SEEK_START) < 0)
+  if (lseek (fd, 0, SEEK_SET) < 0)
     {
       int errno_save = errno;
       (void) close (fd);
@@ -491,15 +491,15 @@ map_file_contents (int fd, size_t len, int *is_read_only)
   /* Given that we are using the read fallback, optimistically assume
      that the .go files were made with 8-byte alignment.
      alignment.  */
-  data = malloc (end);
+  data = malloc (len);
   if (!data)
     {
       (void) close (fd);
       scm_misc_error (FUNC_NAME, "failed to allocate ~A bytes",
-                      scm_list_1 (scm_from_size_t (end)));
+                      scm_list_1 (scm_from_size_t (len)));
     }
 
-  if (full_read (fd, data, end) != end)
+  if (full_read (fd, data, len) != len)
     {
       int errno_save = errno;
       (void) close (fd);
@@ -512,11 +512,11 @@ map_file_contents (int fd, size_t len, int *is_read_only)
 
   /* If our optimism failed, fall back.  */
   {
-    unsigned alignment = sniff_elf_alignment (data, end);
+    unsigned alignment = elf_alignment (data, len);
 
     if (alignment != 8)
       {
-        char *copy = copy_and_align_elf_data (data, end, alignment);
+        char *copy = copy_and_align_elf_data (data, len);
         free (data);
         data = copy;
       }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]