summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-02-27 15:28:36 -0800
committerRoland McGrath <roland@hack.frob.com>2015-02-27 15:28:36 -0800
commit8c2754853e4e5400d505924a50461d011cbe4163 (patch)
treef1da8213d803a6da89a286c7ee65a1b091353bcd
parentf7ec7c1a5ea7d921d94f0ca2552374741a325ce9 (diff)
downloadglibc-8c2754853e4e5400d505924a50461d011cbe4163.tar.gz
glibc-8c2754853e4e5400d505924a50461d011cbe4163.tar.xz
glibc-8c2754853e4e5400d505924a50461d011cbe4163.zip
Actually read in the data when mmap fails.
-rw-r--r--sysdeps/nacl/dl-map-segments.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/nacl/dl-map-segments.h b/sysdeps/nacl/dl-map-segments.h
index 5ad47de472..d93badf1d3 100644
--- a/sysdeps/nacl/dl-map-segments.h
+++ b/sysdeps/nacl/dl-map-segments.h
@@ -149,6 +149,8 @@ _dl_map_segments (struct link_map *l, int fd,
                                      MAP_ANON|MAP_PRIVATE, -1, 0);
                 if (__glibc_unlikely (data == MAP_FAILED))
                   return DL_MAP_SEGMENTS_ERROR_MAP_ZERO_FILL;
+                if (read_in_data (fd, data, len, c->mapoff))
+                  return DL_MAP_SEGMENTS_ERROR_MAP_SEGMENT;
                 int error = __nacl_irt_dyncode.dyncode_create
                   ((void *) (l->l_addr + c->mapstart), data, len);
                 __munmap (data, len);