]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ASAN: Support detect_invalid_pointer_pairs=1 with detect_stack_use_after_return=1
authorMartin Liska <mliska@suse.cz>
Fri, 16 Oct 2020 13:08:52 +0000 (15:08 +0200)
committerMartin Liska <mliska@suse.cz>
Wed, 21 Oct 2020 09:21:53 +0000 (11:21 +0200)
Do not crash when AsanThread::GetStackVariableShadowStart does not find
a variable for a pointer on a shadow stack.

Cherry-pick from ad2be02a833e56f7fe280797280b219eb3312621.

Differential Revision: https://reviews.llvm.org/D89552

(cherry picked from commit b69f33f477b9ac38af3c39465600ae74a3554878)

libsanitizer/asan/asan_thread.cpp

index 6734d9a1668c7ccbd7f6f75ccea394bc755d95e9..cb374b28622b6f8dabed73ffa69b77545e550db2 100644 (file)
@@ -366,7 +366,9 @@ uptr AsanThread::GetStackVariableShadowStart(uptr addr) {
     bottom = stack_bottom();
   } else if (has_fake_stack()) {
     bottom = fake_stack()->AddrIsInFakeStack(addr);
-    CHECK(bottom);
+    if (bottom == 0) {
+      return 0;
+    }
   } else {
     return 0;
   }