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

Julian Lettner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 5 12:26:49 PST 2019


yln marked an inline comment as done.
yln 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()))) {
----------------
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?


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