From: Martin Liska Date: Fri, 16 Oct 2020 13:08:52 +0000 (+0200) Subject: ASAN: Support detect_invalid_pointer_pairs=1 with detect_stack_use_after_return=1 X-Git-Tag: releases/gcc-10.3.0~733 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5758b0d976c7d27443e577dcef027370e23ef4f9;p=thirdparty%2Fgcc.git ASAN: Support detect_invalid_pointer_pairs=1 with detect_stack_use_after_return=1 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) --- diff --git a/libsanitizer/asan/asan_thread.cpp b/libsanitizer/asan/asan_thread.cpp index 6734d9a1668c..cb374b28622b 100644 --- a/libsanitizer/asan/asan_thread.cpp +++ b/libsanitizer/asan/asan_thread.cpp @@ -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; }