[compiler-rt] make mmap-munmap interceptor fail earlier (PR #169775)
Thurston Dang via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 27 13:52:15 PST 2025
================
@@ -266,6 +266,61 @@ void ErrorAllocationSizeTooBig::Print() {
ReportErrorSummary(scariness.GetDescription(), stack);
}
+void ErrorMmapAddrOverflow::Print() {
+ Decorator d;
+ Printf("%s", d.Error());
+ Report("ERROR: AddressSanitizer: mmap requested memory range (0x%zx + 0x%zx) "
+ "causes address overflow\n", start, length);
+ Printf("%s", d.Default());
+ stack->Print();
+ PrintHintAllocatorCannotReturnNull();
+ ReportErrorSummary(scariness.GetDescription(), stack);
+}
+
+void ErrorMmapShadowOverlap::Print() {
+ Decorator d;
+ Printf("%s", d.Error());
+ Report("ERROR: AddressSanitizer: mmap requested memory range 0x%zx-0x%zx "
+ "overlaps with ASan shadow memory\n", start, end);
+ Printf("%s", d.Default());
+ stack->Print();
+ PrintHintAllocatorCannotReturnNull();
+ ReportErrorSummary(scariness.GetDescription(), stack);
+}
+
+void ErrorMmapOutsideRange::Print() {
+ Decorator d;
+ Printf("%s", d.Error());
+ Report("ERROR: AddressSanitizer: mmap requested memory range 0x%zx-0x%zx is "
+ "outside ASan's instrumentable application memory range\n", start, end);
+ Printf("%s", d.Default());
+ stack->Print();
+ PrintHintAllocatorCannotReturnNull();
+ ReportErrorSummary(scariness.GetDescription(), stack);
+}
+
+void ErrorMunmapShadowOverlap::Print() {
----------------
thurstond wrote:
Is the error-reporting necessary? If ASan can't honor a fixed memory mapping for whatever reason, it suffices to return `MAP_FAILED` (this is what HWASan's interceptor does); the shadow is an implementation detail that the user doesn't need to know about.
https://github.com/llvm/llvm-project/pull/169775
More information about the llvm-commits
mailing list