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:
parent
41cca851d9
commit
779b64ec5d
|
@ -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 {
|
||||
|
|
|
@ -3921,8 +3921,9 @@ var prepareForTestWithMemtagHeap = android.GroupFixturePreparers(
|
|||
}),
|
||||
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
|
||||
variables.MemtagHeapExcludePaths = []string{"subdir_exclude"}
|
||||
variables.MemtagHeapSyncIncludePaths = []string{"subdir_sync"}
|
||||
variables.MemtagHeapAsyncIncludePaths = []string{"subdir_async"}
|
||||
// "subdir_exclude" is covered by both include and exclude paths. Exclude wins.
|
||||
variables.MemtagHeapSyncIncludePaths = []string{"subdir_sync", "subdir_exclude"}
|
||||
variables.MemtagHeapAsyncIncludePaths = []string{"subdir_async", "subdir_exclude"}
|
||||
}),
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue