Added no_sanitize_hwaddress attribute for address_in_range 33/263833/1 accepted/tizen_6.5_base accepted/tizen_6.5_base_tool backup/python3-3.9.1-20220127 tizen_6.5_base accepted/tizen/6.5/base/20230714.002657 accepted/tizen/6.5/base/tool/20211027.120857 accepted/tizen/base/tool/20210913.002634 submit/tizen_6.5_base/20211026.180901 submit/tizen_6.5_base/20211027.183101 submit/tizen_6.5_base/20211027.201001 submit/tizen_base/20210910.123310 tizen_6.5.m2_release
authorAndrey Kazmin <a.kazmin@partner.samsung.com>
Tue, 8 Jun 2021 13:25:32 +0000 (16:25 +0300)
committerAndrey Kazmin <a.kazmin@partner.samsung.com>
Fri, 10 Sep 2021 11:35:50 +0000 (14:35 +0300)
Added new attribute for address_in_range to disable HWASan instrumentation.

Change-Id: I4c446585f144f034dc79e4dc938ef4b8f8401199
Signed-off-by: Andrey Kazmin <a.kazmin@partner.samsung.com>
Objects/obmalloc.c

index eb34f10bddf993a45169563d220d97d238cb63c8..9284c7ffde2bb2b77c7f38d3ce12344e5bb11041 100644 (file)
@@ -34,6 +34,10 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain);
 #    define _Py_NO_SANITIZE_ADDRESS \
         __attribute__((no_sanitize("address")))
 #  endif
+#  if __has_feature(hwaddress_sanitizer) /* is ASAN enabled? */
+#    define _Py_NO_SANITIZE_HWADDRESS \
+        __attribute__((no_sanitize("hwaddress")))
+#  endif
 #  if __has_feature(thread_sanitizer)  /* is TSAN enabled? */
 #    define _Py_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread))
 #  endif
@@ -44,6 +48,10 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain);
 #  if defined(__SANITIZE_ADDRESS__)    /* GCC 4.8+, is ASAN enabled? */
 #    define _Py_NO_SANITIZE_ADDRESS \
         __attribute__((no_sanitize_address))
+#  endif
+#  if defined(__SANITIZE_HWADDRESS__)    /* GCC 10+, is HWASAN enabled? */
+#    define _Py_NO_SANITIZE_HWADDRESS \
+        __attribute__((no_sanitize_hwaddress))
 #  endif
    // TSAN is supported since GCC 5.1, but __SANITIZE_THREAD__ macro
    // is provided only since GCC 7.
@@ -55,6 +63,9 @@ static void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain);
 #ifndef _Py_NO_SANITIZE_ADDRESS
 #  define _Py_NO_SANITIZE_ADDRESS
 #endif
+#ifndef _Py_NO_SANITIZE_HWADDRESS
+#  define _Py_NO_SANITIZE_HWADDRESS
+#endif
 #ifndef _Py_NO_SANITIZE_THREAD
 #  define _Py_NO_SANITIZE_THREAD
 #endif
@@ -1408,6 +1419,7 @@ extremely desirable that it be this fast.
 */
 
 static bool _Py_NO_SANITIZE_ADDRESS
+            _Py_NO_SANITIZE_HWADDRESS
             _Py_NO_SANITIZE_THREAD
             _Py_NO_SANITIZE_MEMORY
 address_in_range(void *p, poolp pool)