summaryrefslogtreecommitdiff
path: root/lib/cfi/cfi.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cfi/cfi.cc')
-rw-r--r--lib/cfi/cfi.cc9
1 files changed, 2 insertions, 7 deletions
diff --git a/lib/cfi/cfi.cc b/lib/cfi/cfi.cc
index 8a32ab59d..524730f81 100644
--- a/lib/cfi/cfi.cc
+++ b/lib/cfi/cfi.cc
@@ -303,20 +303,15 @@ ALWAYS_INLINE void CfiSlowPathCommon(u64 CallSiteTypeId, void *Ptr,
VReport(3, "__cfi_slowpath: %llx, %p\n", CallSiteTypeId, Ptr);
ShadowValue sv = ShadowValue::load(Addr);
if (sv.is_invalid()) {
- // FIXME: call the ubsan handler if DiagData != nullptr?
VReport(1, "CFI: invalid memory region for a check target: %p\n", Ptr);
#ifdef CFI_ENABLE_DIAG
if (DiagData) {
__ubsan_handle_cfi_check_fail(
- reinterpret_cast<__ubsan::CFICheckFailData *>(DiagData),
- reinterpret_cast<uptr>(Ptr));
+ reinterpret_cast<__ubsan::CFICheckFailData *>(DiagData), Addr);
return;
- } else {
- Trap();
}
-#else
- Trap();
#endif
+ Trap();
}
if (sv.is_unchecked()) {
VReport(2, "CFI: unchecked call (shadow=FFFF): %p\n", Ptr);