Fix exclusion overriding local integer_overflow.
INTEGER_OVERFLOW_EXCLUDE_PATHS should only apply to the global sanitizer setting, and should not override local module settings. This pulls out the check so it occurs earlier and does not interfere with local settings. This makes Make consistent with Soong's behavior as well. Bug: 30969751 Test: Created a test build file with this explicitly set, excluded the path, and checked if it was still being sanitized. Change-Id: I9020d92bae136b6087d37f71d5337acaefe850b4
This commit is contained in:
@@ -22,6 +22,18 @@ ifeq ($(my_clang),true)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Disable global integer_overflow in excluded paths.
|
||||
ifneq ($(filter integer_overflow, $(my_global_sanitize)),)
|
||||
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_global_sanitize := $(filter-out integer_overflow,$(my_global_sanitize))
|
||||
my_global_sanitize_diag := $(filter-out integer_overflow,$(my_global_sanitize_diag))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(my_global_sanitize),)
|
||||
my_sanitize := $(my_global_sanitize) $(my_sanitize)
|
||||
endif
|
||||
@@ -103,17 +115,8 @@ 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))
|
||||
|
Reference in New Issue
Block a user