Enforce VisualVoicemailService to require BIND_VISUAL_VOICEMAIL_SERVICE
Also fixes NPE in enforceVisualVoicemailPackage()
Change-Id: I6a9a6ea33fc939cf0926e9d5ec4beeb0f312e24c
Fixes: 35854031
Test: CTS - VisualVoicemailServiceTest
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 5cd1d85..d2e635e 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -3537,8 +3537,12 @@
* @throws SecurityException if the caller is not the visual voicemail package.
*/
private void enforceVisualVoicemailPackage(String callingPackage, int subId) {
- String vvmPackage = RemoteVvmTaskManager.getRemotePackage(mPhone.getContext(), subId)
- .getPackageName();
+ ComponentName componentName =
+ RemoteVvmTaskManager.getRemotePackage(mPhone.getContext(), subId);
+ if(componentName == null) {
+ throw new SecurityException("Caller not current active visual voicemail package[null]");
+ }
+ String vvmPackage = componentName.getPackageName();
if (!callingPackage.equals(vvmPackage)) {
throw new SecurityException("Caller not current active visual voicemail package[" +
vvmPackage + "]");