From b4749cb0fc7e3f0cf8cb8fcdfab0929166bfa1ab Mon Sep 17 00:00:00 2001 From: Ivan Lozano Date: Fri, 21 Jul 2017 10:33:32 -0700 Subject: [PATCH] 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 --- core/config_sanitizers.mk | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index 0d182e9e1..8304b83a8 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -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))