Fix evaluation order of (Cfi|Memtag) exclude paths.
Before this change, exclude paths disabled sanitization of targets that would otherwise be enabled by SanitizeDevice product variable (aka SANITIZE_TARGET). With this change, in addition to the above logic, exclude path disables sanitization of targets that would otherwise be enabled by the corresponding include path. Effectively, this change disables sanitization of targets that are covered by *both* include and exclude paths. Test: build/soong/cc/cc_test.go Bug: b/184976817 Change-Id: I96f1e2a808d88b352b92b7490fa1df5c010314c3
This commit is contained in:
@@ -1259,7 +1259,7 @@ func (c *config) CFIEnabledForPath(path string) bool {
|
||||
if len(c.productVariables.CFIIncludePaths) == 0 {
|
||||
return false
|
||||
}
|
||||
return HasAnyPrefix(path, c.productVariables.CFIIncludePaths)
|
||||
return HasAnyPrefix(path, c.productVariables.CFIIncludePaths) && !c.CFIDisabledForPath(path)
|
||||
}
|
||||
|
||||
func (c *config) MemtagHeapDisabledForPath(path string) bool {
|
||||
@@ -1273,14 +1273,14 @@ func (c *config) MemtagHeapAsyncEnabledForPath(path string) bool {
|
||||
if len(c.productVariables.MemtagHeapAsyncIncludePaths) == 0 {
|
||||
return false
|
||||
}
|
||||
return HasAnyPrefix(path, c.productVariables.MemtagHeapAsyncIncludePaths)
|
||||
return HasAnyPrefix(path, c.productVariables.MemtagHeapAsyncIncludePaths) && !c.MemtagHeapDisabledForPath(path)
|
||||
}
|
||||
|
||||
func (c *config) MemtagHeapSyncEnabledForPath(path string) bool {
|
||||
if len(c.productVariables.MemtagHeapSyncIncludePaths) == 0 {
|
||||
return false
|
||||
}
|
||||
return HasAnyPrefix(path, c.productVariables.MemtagHeapSyncIncludePaths)
|
||||
return HasAnyPrefix(path, c.productVariables.MemtagHeapSyncIncludePaths) && !c.MemtagHeapDisabledForPath(path)
|
||||
}
|
||||
|
||||
func (c *config) VendorConfig(name string) VendorConfig {
|
||||
|
Reference in New Issue
Block a user