summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robert Wu <robertwu@google.com> 2024-02-21 22:26:42 +0000
committer Robert Wu <robertwu@google.com> 2024-02-21 23:57:00 +0000
commit6553ea4976d188314ab01b81339442b68748a205 (patch)
treec222e3cdd58ec280f9efdc98476271c9904659e0
parent0edd84716a9090da9a35837353ccb7344d5b8608 (diff)
MIDI: Add null check for UserManager.getMainUser
UserManager.getMainUser() can return null for some devices. This is causing a NullPointerException in some automotive cases. This CL adds an additional check to make sure that this is not null. Bug: 322622902 Test: Connect to jamstick on phone with MIDI+BTLE app. Test: Verify that MidiScope receives packets successfully. Change-Id: I5b8e060cd8cafde1b1c60e259cc5ba0516a417d0
-rw-r--r--services/midi/java/com/android/server/midi/MidiService.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/services/midi/java/com/android/server/midi/MidiService.java b/services/midi/java/com/android/server/midi/MidiService.java
index 39aaab25d7be..7402d1454bab 100644
--- a/services/midi/java/com/android/server/midi/MidiService.java
+++ b/services/midi/java/com/android/server/midi/MidiService.java
@@ -1011,7 +1011,11 @@ public class MidiService extends IMidiManager.Stub {
}
}
- if (user.getUserIdentifier() == mUserManager.getMainUser().getIdentifier()) {
+ // Allow only the main user to create BluetoothMidiService.
+ // If there is no main user, allow all users to create it.
+ UserHandle mainUser = mUserManager.getMainUser();
+ if ((mainUser == null)
+ || (user.getUserIdentifier() == mainUser.getIdentifier())) {
PackageInfo info;
try {
info = mPackageManager.getPackageInfoAsUser(