From a15deadbd58359c645cc030868a2b75bd8c30fae Mon Sep 17 00:00:00 2001 From: shubang Date: Tue, 16 May 2023 14:58:03 -0700 Subject: [PATCH] [TIAF] Add null checks to avoid NPEs Bug: 278628657 Test: atest TvInputServiceTest Change-Id: Ieae1481781b58b23a3449961fcaa0b51d02d8d0a --- .../java/com/android/server/tv/TvInputHardwareManager.java | 4 ++++ .../java/com/android/server/tv/TvInputManagerService.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java index 9cdceef006d97..d63a908517fb2 100755 --- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java +++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java @@ -269,6 +269,10 @@ class TvInputHardwareManager implements TvInputHal.Callback { @Override public void onTvMessage(int deviceId, int type, Bundle data) { synchronized (mLock) { + String inputId = mHardwareInputIdMap.get(deviceId); + if (inputId == null) { + return; + } SomeArgs args = SomeArgs.obtain(); args.arg1 = mHardwareInputIdMap.get(deviceId); args.arg2 = data; diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java index 9cfdd5fb42e78..a05bd2d008dad 100644 --- a/services/core/java/com/android/server/tv/TvInputManagerService.java +++ b/services/core/java/com/android/server/tv/TvInputManagerService.java @@ -4152,6 +4152,10 @@ public final class TvInputManagerService extends SystemService { synchronized (mLock) { UserState userState = getOrCreateUserStateLocked(mCurrentUserId); TvInputState inputState = userState.inputMap.get(inputId); + if (inputState == null) { + Slog.e(TAG, "failed to send TV message - unknown input id " + inputId); + return; + } ServiceState serviceState = userState.serviceStateMap.get(inputState.info .getComponent()); for (IBinder token : serviceState.sessionTokens) {