Date: Tue, 24 Oct 2017 10:48:27 +0000 (UTC) From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r324949 - head/libexec/rtld-elf Message-ID: <201710241048.v9OAmR0d098244@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: trasz Date: Tue Oct 24 10:48:26 2017 New Revision: 324949 URL: https://svnweb.freebsd.org/changeset/base/324949 Log: Use xmalloc and read(2) instead of mmap(2) to read in libmap.conf(5). This removes the need to call munmap(2) afterwards. MFC after: 2 weeks Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D12767 Modified: head/libexec/rtld-elf/libmap.c Modified: head/libexec/rtld-elf/libmap.c ============================================================================== --- head/libexec/rtld-elf/libmap.c Tue Oct 24 08:56:11 2017 (r324948) +++ head/libexec/rtld-elf/libmap.c Tue Oct 24 10:48:26 2017 (r324949) @@ -100,6 +100,7 @@ lmc_parse_file(char *path) { struct lmc *p; struct stat st; + ssize_t retval; int fd; char *lm_map; @@ -128,10 +129,11 @@ lmc_parse_file(char *path) } } - lm_map = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0); - if (lm_map == (const char *)MAP_FAILED) { + lm_map = xmalloc(st.st_size); + retval = read(fd, lm_map, st.st_size); + if (retval != st.st_size) { close(fd); - dbg("lm_parse_file: mmap(\"%s\") failed, %s", path, + dbg("lm_parse_file: read(\"%s\") failed, %s", path, rtld_strerror(errno)); return; } @@ -142,7 +144,7 @@ lmc_parse_file(char *path) p->ino = st.st_ino; TAILQ_INSERT_HEAD(&lmc_head, p, next); lmc_parse(lm_map, st.st_size); - munmap(lm_map, st.st_size); + free(lm_map); } static void
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710241048.v9OAmR0d098244>