[PATCH] D58988: [Sanitizer] Protect UnwindFast with IsValidFrame on MIPS

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 5 12:52:02 PST 2019


vitalybuka added inline comments.


================
Comment at: compiler-rt/lib/asan/asan_stack.cc:68
   if (request_fast) {
-    if (t) {
+    if (t && (!SANITIZER_MIPS ||
+              IsValidFrame(bp, t->stack_top(), t->stack_bottom()))) {
----------------
yln wrote:
> vitalybuka wrote:
> > vitalybuka wrote:
> > > Previously It protected both.
> > > However original commit for this check mentions that MIPS use only Slow and it lacks IsValid check.
> > https://reviews.llvm.org/D18690?vs=on&id=52346&whitespace=ignore-most#toc
> Just to make sure I understand:
> MIPS only uses slow unwinder, which doesn't work when !IsValidFrame, despite it not explicitly taking (bp, top, bottom) as inputs?
> 
> To me, that is extremely confusing.
> 
> Should we try to make MIPS slow unwinder work (as in: return early without error) for !IsValidFrame? Instead of working around the symptom here?
Correct.
It would be nice if you have time for this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58988/new/

https://reviews.llvm.org/D58988





More information about the llvm-commits mailing list