diff options
author | Jaehun Jeong <jh4u.jeong@samsung.com> | 2018-01-24 09:30:17 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.ap-northeast-2.compute.internal> | 2018-01-24 09:30:17 +0000 |
commit | 5ccca94af27d300dbb5c116000044926bae26161 (patch) | |
tree | 5ce7ff7d0e53e71fd20dc637a26ee04d78c693e6 | |
parent | f8907708ef9b4194740467d9806b8b73871f612f (diff) | |
parent | 297e3d2955d3c6d7fd5a9af078343c879aec9bd9 (diff) | |
download | linaro-gcc-5ccca94af27d300dbb5c116000044926bae26161.tar.gz linaro-gcc-5ccca94af27d300dbb5c116000044926bae26161.tar.bz2 linaro-gcc-5ccca94af27d300dbb5c116000044926bae26161.zip |
Merge "[ASAN] Add interceptor for __longjmp_chk" into tizen_base
-rw-r--r-- | libsanitizer/asan/asan_interceptors.cc | 10 | ||||
-rw-r--r-- | libsanitizer/asan/asan_interceptors.h | 6 |
2 files changed, 16 insertions, 0 deletions
diff --git a/libsanitizer/asan/asan_interceptors.cc b/libsanitizer/asan/asan_interceptors.cc index 743abe51481..49c9fef75c2 100644 --- a/libsanitizer/asan/asan_interceptors.cc +++ b/libsanitizer/asan/asan_interceptors.cc @@ -372,6 +372,13 @@ INTERCEPTOR(void, _longjmp, void *env, int val) { } #endif +#if ASAN_INTERCEPT___LONGJMP_CHK +INTERCEPTOR(void, __longjmp_chk, void *env, int val) { + __asan_handle_no_return(); + REAL(__longjmp_chk)(env, val); +} +#endif + #if ASAN_INTERCEPT_SIGLONGJMP INTERCEPTOR(void, siglongjmp, void *env, int val) { __asan_handle_no_return(); @@ -770,6 +777,9 @@ void InitializeAsanInterceptors() { #if ASAN_INTERCEPT__LONGJMP ASAN_INTERCEPT_FUNC(_longjmp); #endif +#if ASAN_INTERCEPT___LONGJMP_CHK + ASAN_INTERCEPT_FUNC(__longjmp_chk); +#endif #if ASAN_INTERCEPT_SIGLONGJMP ASAN_INTERCEPT_FUNC(siglongjmp); #endif diff --git a/libsanitizer/asan/asan_interceptors.h b/libsanitizer/asan/asan_interceptors.h index 7053bb7faf5..565a6327512 100644 --- a/libsanitizer/asan/asan_interceptors.h +++ b/libsanitizer/asan/asan_interceptors.h @@ -56,6 +56,12 @@ # define ASAN_INTERCEPT_SIGLONGJMP 0 #endif +#if SANITIZER_LINUX && !SANITIZER_ANDROID +# define ASAN_INTERCEPT___LONGJMP_CHK 1 +#else +# define ASAN_INTERCEPT___LONGJMP_CHK 0 +#endif + // Android bug: https://code.google.com/p/android/issues/detail?id=61799 #if ASAN_HAS_EXCEPTIONS && !SANITIZER_WINDOWS && \ !(SANITIZER_ANDROID && defined(__i386)) |