From b2d3d3aba562c1ed94533219a0db09b0669821f2 Mon Sep 17 00:00:00 2001 From: Ytai Ben-Tsvi Date: Wed, 23 Jun 2021 08:14:26 -0700 Subject: [PATCH] Fix permission checking in SoundTriggerService Result of permission check was erroneously ignored instead of throwing. Fixes: 191597651 Test: Manual verification of basic soundtrigger flows (assistant, now playing) against regression. Requested reporter to repro bug. Change-Id: I73449a156308880dae9ca5d432df3bc5ee747e58 --- .../android/server/soundtrigger/SoundTriggerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java index eac21b492f104..5183e5b8e2462 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java @@ -863,7 +863,12 @@ public class SoundTriggerService extends SystemService { } private void enforceCallingPermission(String permission) { - PermissionUtil.checkPermissionForPreflight(mContext, mOriginatorIdentity, permission); + if (PermissionUtil.checkPermissionForPreflight(mContext, mOriginatorIdentity, + permission) != PackageManager.PERMISSION_GRANTED) { + throw new SecurityException( + "Identity " + mOriginatorIdentity + " does not have permission " + + permission); + } } private void enforceDetectionPermissions(ComponentName detectionService) {