diff options
author | 2025-01-31 03:50:44 -0800 | |
---|---|---|
committer | 2025-01-31 03:50:44 -0800 | |
commit | 1ffeb28953acb494da186183f43ce7b2ca032de0 (patch) | |
tree | 00b604c46c4e00a6e228faa21b76f72c3a3e0ace | |
parent | 7544e55ff4365e8bdb467cb9c593e61f1318a2c7 (diff) | |
parent | 2473478f8080f7994b94162c1948efe1b33ea0bd (diff) |
Merge "Fix FD leaks in BootReceiver." into main am: 2473478f80
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3298172
Change-Id: Ie1c65644222a6a31516dcccef19016d1be895725
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | services/core/java/com/android/server/BootReceiver.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/BootReceiver.java b/services/core/java/com/android/server/BootReceiver.java index 23cee9db2138..16209b1dc3d3 100644 --- a/services/core/java/com/android/server/BootReceiver.java +++ b/services/core/java/com/android/server/BootReceiver.java @@ -50,6 +50,7 @@ import com.android.modules.utils.TypedXmlPullParser; import com.android.modules.utils.TypedXmlSerializer; import com.android.server.am.DropboxRateLimiter; +import libcore.io.IoUtils; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -147,6 +148,10 @@ public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { + if (!Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { + return; + } + // Log boot events in the background to avoid blocking the main thread with I/O new Thread() { @Override @@ -212,6 +217,8 @@ public class BootReceiver extends BroadcastReceiver { } catch (Exception e) { Slog.wtf(TAG, "Error watching for trace events", e); return 0; // Unregister the handler. + } finally { + IoUtils.closeQuietly(fd); } return OnFileDescriptorEventListener.EVENT_INPUT; } |