forked from openkylin/platform_build
Allow integer_overflow sanitizer path exclusion.
Add support for excluding paths from having integer_overflow applied to them when using SANITIZE_TARGET=integer_overflow via an INTEGER_OVERFLOW_EXCLUDE_PATHS make and product variable. This covers the make side of the change. Bug: 30969751 Test: Build with SANITIZE_TARGET=integer_overflow SANITIZE_TARGET_DIAG=integer_overflow INTEGER_OVERFLOW_EXCLUDE_PATHS=<path> and confirmed this was no longer being applied to binaries in that path. Change-Id: I24e328257bc5a7962024c8676a1e23d7d70a8666
This commit is contained in:
parent
80c05c518b
commit
9a82bfdc68
|
@ -103,15 +103,23 @@ ifneq ($(my_sanitize)$(my_global_sanitize),)
|
|||
endif
|
||||
endif
|
||||
|
||||
# Disable integer_overflow if LOCAL_NOSANITIZE=integer.
|
||||
ifneq ($(filter integer_overflow, $(my_global_sanitize) $(my_sanitize)),)
|
||||
# Disable integer_overflow in excluded paths.
|
||||
combined_exclude_paths := $(INTEGER_OVERFLOW_EXCLUDE_PATHS) \
|
||||
$(PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS)
|
||||
|
||||
ifneq ($(strip $(foreach dir,$(subst $(comma),$(space),$(combined_exclude_paths)),\
|
||||
$(filter $(dir)%,$(LOCAL_PATH)))),)
|
||||
my_sanitize := $(filter-out integer_overflow,$(my_sanitize))
|
||||
my_sanitize_diag := $(filter-out integer_overflow,$(my_sanitize_diag))
|
||||
endif
|
||||
# Disable integer_overflow if LOCAL_NOSANITIZE=integer.
|
||||
ifneq ($(filter integer, $(strip $(LOCAL_NOSANITIZE))),)
|
||||
my_sanitize := $(filter-out integer_overflow,$(my_sanitize))
|
||||
my_sanitize_diag := $(filter-out integer_overflow,$(my_sanitize_diag))
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
my_nosanitize = $(strip $(LOCAL_NOSANITIZE))
|
||||
ifneq ($(my_nosanitize),)
|
||||
my_sanitize := $(filter-out $(my_nosanitize),$(my_sanitize))
|
||||
|
|
|
@ -135,6 +135,7 @@ _product_var_list := \
|
|||
PRODUCT_IOT \
|
||||
PRODUCT_SYSTEM_HEADROOM \
|
||||
PRODUCT_MINIMIZE_JAVA_DEBUG_INFO \
|
||||
PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS \
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -431,3 +431,7 @@ PRODUCT_SYSTEM_HEADROOM := \
|
|||
# Whether to save disk space by minimizing java debug info
|
||||
PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := \
|
||||
$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_MINIMIZE_JAVA_DEBUG_INFO))
|
||||
|
||||
# Whether any paths are excluded from sanitization when SANITIZE_TARGET=integer_overflow
|
||||
PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS := \
|
||||
$(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS))
|
||||
|
|
|
@ -79,6 +79,7 @@ $(SOONG_VARIABLES): FORCE
|
|||
echo ' "CrossHostSecondaryArch": "$(HOST_CROSS_2ND_ARCH)",'; \
|
||||
echo ' "Safestack": $(if $(filter true,$(USE_SAFESTACK)),true,false),'; \
|
||||
echo ' "EnableCFI": $(if $(filter false,$(ENABLE_CFI)),false,true),'; \
|
||||
echo ' "IntegerOverflowExcludePaths": $(call json_list,$(INTEGER_OVERFLOW_EXCLUDE_PATHS) $(PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS)),'; \
|
||||
echo ' "Device_uses_hwc2": $(if $(filter true,$(TARGET_USES_HWC2)),true,false),'; \
|
||||
echo ' "Override_rs_driver": "$(OVERRIDE_RS_DRIVER)",'; \
|
||||
echo ' "Treble": $(if $(filter true,$(PRODUCT_FULL_TREBLE)),true,false),'; \
|
||||
|
|
Loading…
Reference in New Issue