svn commit: r355676 - head/libexec/rtld-elf

Konstantin Belousov kib at FreeBSD.org
Thu Dec 12 22:59:23 UTC 2019


Author: kib
Date: Thu Dec 12 22:59:22 2019
New Revision: 355676
URL: https://svnweb.freebsd.org/changeset/base/355676

Log:
  rtld: make checks for mmap(2) failures compliant with documentation.
  
  On error, mmap(2) returns MAP_FAILED.  There is no need to use its
  definition or to cast.
  
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/libexec/rtld-elf/map_object.c

Modified: head/libexec/rtld-elf/map_object.c
==============================================================================
--- head/libexec/rtld-elf/map_object.c	Thu Dec 12 22:36:47 2019	(r355675)
+++ head/libexec/rtld-elf/map_object.c	Thu Dec 12 22:59:22 2019	(r355676)
@@ -209,7 +209,7 @@ map_object(int fd, const char *path, const struct stat
 	base_flags |= MAP_FIXED | MAP_EXCL;
 
     mapbase = mmap(base_addr, mapsize, PROT_NONE, base_flags, -1, 0);
-    if (mapbase == (caddr_t) -1) {
+    if (mapbase == MAP_FAILED) {
 	_rtld_error("%s: mmap of entire address space failed: %s",
 	  path, rtld_strerror(errno));
 	goto error;
@@ -266,7 +266,7 @@ map_object(int fd, const char *path, const struct stat
 	    bss_addr = mapbase +  (bss_vaddr - base_vaddr);
 	    if (bss_vlimit > bss_vaddr) {	/* There is something to do */
 		if (mmap(bss_addr, bss_vlimit - bss_vaddr, data_prot,
-		    data_flags | MAP_ANON, -1, 0) == (caddr_t)-1) {
+		    data_flags | MAP_ANON, -1, 0) == MAP_FAILED) {
 		    _rtld_error("%s: mmap of bss failed: %s", path,
 			rtld_strerror(errno));
 		    goto error1;
@@ -348,7 +348,7 @@ get_elf_header(int fd, const char *path, const struct 
 
 	hdr = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE | MAP_PREFAULT_READ,
 	    fd, 0);
-	if (hdr == (Elf_Ehdr *)MAP_FAILED) {
+	if (hdr == MAP_FAILED) {
 		_rtld_error("%s: read error: %s", path, rtld_strerror(errno));
 		return (NULL);
 	}


More information about the svn-src-all mailing list