diff options
author | Jooyung Han <jooyung@google.com> | 2020-06-20 19:38:21 +0900 |
---|---|---|
committer | Adrian DC <radian.dc@gmail.com> | 2020-12-30 02:00:17 +0100 |
commit | 2bc83fb8d9722522becfe092f31bc69bf162ca41 (patch) | |
tree | 5415b73abdde599f8b4d395f022ef4a0baedf016 | |
parent | 0e0bfb7eac3faafb81709bde885589bc7156a1bc (diff) |
Check `base` property before using it
OverrideModule's `base` property should point a valid
module(OverridableModule).
It should be checked before using it.
Bug: 159503211
Test: add `override_apex` without `base`
m emits error, not panic.
Change-Id: I1d7c9395cc9a7461e317dd4b6ddbec3a9e68e9bf
(cherry picked from commit 3851b0c1fe8e8ffd3d30b4b8a5289f39a2c98270)
-rw-r--r-- | android/override_module.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/android/override_module.go b/android/override_module.go index 90ddf5049..6b246db41 100644 --- a/android/override_module.go +++ b/android/override_module.go @@ -223,6 +223,11 @@ var overrideBaseDepTag overrideBaseDependencyTag // next phase. func overrideModuleDepsMutator(ctx BottomUpMutatorContext) { if module, ok := ctx.Module().(OverrideModule); ok { + base := String(module.getOverrideModuleProperties().Base) + if !ctx.OtherModuleExists(base) { + ctx.PropertyErrorf("base", "%q is not a valid module name", base) + return + } // See if there's a prebuilt module that overrides this override module with prefer flag, // in which case we call SkipInstall on the corresponding variant later. ctx.VisitDirectDepsWithTag(PrebuiltDepTag, func(dep Module) { |