[PATCH] D144830: [asan darwin] Allow clients to implement `__sanitizer_report_error_summary`
Vitaly Buka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 6 16:37:10 PST 2023
vitalybuka updated this revision to Diff 502857.
vitalybuka added a comment.
simplify test
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144830/new/
https://reviews.llvm.org/D144830
Files:
compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
compiler-rt/test/asan/TestCases/report_error_summary.cpp
Index: compiler-rt/test/asan/TestCases/report_error_summary.cpp
===================================================================
--- /dev/null
+++ compiler-rt/test/asan/TestCases/report_error_summary.cpp
@@ -0,0 +1,17 @@
+// RUN: %clangxx_asan -O0 %s -o %t && not %run %t 2>&1 | FileCheck %s
+
+#include <stdio.h>
+
+extern "C" void __sanitizer_report_error_summary(const char *summary) {
+ fprintf(stderr, "test_report_error_summary\n", summary);
+ // CHECK: test_report_error_summary
+ fflush(stderr);
+}
+
+char *x;
+
+int main() {
+ x = new char[20];
+ delete[] x;
+ return x[0];
+}
Index: compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
===================================================================
--- compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
+++ compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
@@ -989,7 +989,7 @@
// "wrap_puts" within our own dylib.
Dl_info info_puts, info_runtime;
RAW_CHECK(dladdr(dlsym(RTLD_DEFAULT, "puts"), &info_puts));
- RAW_CHECK(dladdr((void *)__sanitizer_report_error_summary, &info_runtime));
+ RAW_CHECK(dladdr((void *)&VerifyInterceptorsWorking, &info_runtime));
if (internal_strcmp(info_puts.dli_fname, info_runtime.dli_fname) != 0) {
Report(
"ERROR: Interceptors are not working. This may be because %s is "
@@ -1039,7 +1039,7 @@
return;
Dl_info info;
- RAW_CHECK(dladdr((void *)__sanitizer_report_error_summary, &info));
+ RAW_CHECK(dladdr((void *)&StripEnv, &info));
const char *dylib_name = StripModuleName(info.dli_fname);
bool lib_is_in_env = internal_strstr(dyld_insert_libraries, dylib_name);
if (!lib_is_in_env)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144830.502857.patch
Type: text/x-patch
Size: 1640 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230307/ab5b1a77/attachment.bin>
More information about the llvm-commits
mailing list