From ca6b5bb8f487de7c1ad8641aea27a1122a09a8b5 Mon Sep 17 00:00:00 2001 From: Luka Panio <lukapanio@gmail.com> Date: Sun, 9 Jun 2024 13:33:37 +0200 Subject: [PATCH] UEventObserver: ignore uevents without name * Fix for NPE on broken uevents causing soft reboot E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: UEventObserver E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.contains(java.lang.CharSequence)' on a null object reference E AndroidRuntime: at com.android.server.policy.PhoneWindowManager$HdmiVideoExtconUEventObserver.parseState(PhoneWindowManager.java:7667) E AndroidRuntime: at com.android.server.policy.PhoneWindowManager$HdmiVideoExtconUEventObserver.parseState(PhoneWindowManager.java:7633) E AndroidRuntime: at com.android.server.ExtconStateObserver.onUEvent(ExtconStateObserver.java:56) E AndroidRuntime: at com.android.server.ExtconUEventObserver.onUEvent(ExtconUEventObserver.java:63) E AndroidRuntime: at android.os.UEventObserver$UEventThread.sendEvent(UEventObserver.java:217) Change-Id: I17711b0af41f4e7cd2ad57d242e1bdd209635622 --- core/java/android/os/UEventObserver.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/os/UEventObserver.java b/core/java/android/os/UEventObserver.java index fa30e509f8cc..1abf98258028 100644 --- a/core/java/android/os/UEventObserver.java +++ b/core/java/android/os/UEventObserver.java @@ -211,6 +211,9 @@ public abstract class UEventObserver { if (!mTempObserversToSignal.isEmpty()) { final UEvent event = new UEvent(message); + if (event.get("NAME") == null) { + return; + } final int N = mTempObserversToSignal.size(); for (int i = 0; i < N; i++) { final UEventObserver observer = mTempObserversToSignal.get(i); -- GitLab