[compiler-rt] r252121 - [Sanitizer] Use ReportMmapFailureAndDie() in all applicable mmap variants on Posix.

Alexey Samsonov via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 4 17:16:48 PST 2015


Author: samsonov
Date: Wed Nov  4 19:16:48 2015
New Revision: 252121

URL: http://llvm.org/viewvc/llvm-project?rev=252121&view=rev
Log:
[Sanitizer] Use ReportMmapFailureAndDie() in all applicable mmap variants on Posix.

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc?rev=252121&r1=252120&r2=252121&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc Wed Nov  4 19:16:48 2015
@@ -164,7 +164,7 @@ void NORETURN CheckFailed(const char *fi
 }
 
 void NORETURN ReportMmapFailureAndDie(uptr size, const char *mem_type,
-                                      error_t err) {
+                                      const char *mmap_type, error_t err) {
   static int recursion_count;
   if (recursion_count) {
     // The Report() and CHECK calls below may call mmap recursively and fail.
@@ -174,8 +174,8 @@ void NORETURN ReportMmapFailureAndDie(up
   }
   recursion_count++;
   Report("ERROR: %s failed to "
-         "allocate 0x%zx (%zd) bytes of %s (error code: %d)\n",
-         SanitizerToolName, size, size, mem_type, err);
+         "%s 0x%zx (%zd) bytes of %s (error code: %d)\n",
+         SanitizerToolName, mmap_type, size, size, mem_type, err);
   DumpProcessMap();
   UNREACHABLE("unable to mmap");
 }

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h?rev=252121&r1=252120&r2=252121&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h Wed Nov  4 19:16:48 2015
@@ -309,7 +309,7 @@ void NORETURN Die();
 void NORETURN
 CheckFailed(const char *file, int line, const char *cond, u64 v1, u64 v2);
 void NORETURN ReportMmapFailureAndDie(uptr size, const char *mem_type,
-                                      error_t err);
+                                      const char *mmap_type, error_t err);
 
 // Set the name of the current thread to 'name', return true on succees.
 // The name may be truncated to a system-dependent limit.

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc?rev=252121&r1=252120&r2=252121&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix.cc Wed Nov  4 19:16:48 2015
@@ -119,7 +119,7 @@ void *MmapOrDie(uptr size, const char *m
                            MAP_PRIVATE | MAP_ANON, -1, 0);
   int reserrno;
   if (internal_iserror(res, &reserrno))
-    ReportMmapFailureAndDie(size, mem_type, reserrno);
+    ReportMmapFailureAndDie(size, mem_type, "allocate", reserrno);
   IncreaseTotalMmap(size);
   return (void *)res;
 }
@@ -143,12 +143,8 @@ void *MmapNoReserveOrDie(uptr size, cons
                          MAP_PRIVATE | MAP_ANON | MAP_NORESERVE,
                          -1, 0);
   int reserrno;
-  if (internal_iserror(p, &reserrno)) {
-    Report("ERROR: %s failed to "
-           "allocate noreserve 0x%zx (%zd) bytes for '%s' (errno: %d)\n",
-           SanitizerToolName, size, size, mem_type, reserrno);
-    CHECK("unable to mmap" && 0);
-  }
+  if (internal_iserror(p, &reserrno))
+    ReportMmapFailureAndDie(size, mem_type, "allocate noreserve", reserrno);
   IncreaseTotalMmap(size);
   return (void *)p;
 }
@@ -162,10 +158,10 @@ void *MmapFixedOrDie(uptr fixed_addr, up
       -1, 0);
   int reserrno;
   if (internal_iserror(p, &reserrno)) {
-    Report("ERROR: %s failed to "
-           "allocate 0x%zx (%zd) bytes at address %zx (errno: %d)\n",
-           SanitizerToolName, size, size, fixed_addr, reserrno);
-    CHECK("unable to mmap" && 0);
+    char mem_type[30];
+    internal_snprintf(mem_type, sizeof(mem_type), "memory at address 0x%zx",
+                      fixed_addr);
+    ReportMmapFailureAndDie(size, mem_type, "allocate", reserrno);
   }
   IncreaseTotalMmap(size);
   return (void *)p;

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc?rev=252121&r1=252120&r2=252121&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_win.cc Wed Nov  4 19:16:48 2015
@@ -86,7 +86,7 @@ void GetThreadStackTopAndBottom(bool at_
 void *MmapOrDie(uptr size, const char *mem_type) {
   void *rv = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
   if (rv == 0)
-    ReportMmapFailureAndDie(size, mem_type, GetLastError());
+    ReportMmapFailureAndDie(size, mem_type, "allocate", GetLastError());
   return rv;
 }
 




More information about the llvm-commits mailing list