From ef620e85227df66c3ba763e622d1063de5f1825e Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 9 Sep 2021 12:05:38 -0700 Subject: [PATCH] Fix NPE in BootReceiver.addTombstoneToDropBox. If we have a native crash before the DropBoxManager starts, don't try to send the tombstone. Bug: http://b/199333694 Bug: http://b/194131417 Test: not obviously practical Change-Id: I542fb9641bb4d699ca79caf9faca93412c236a44 --- services/core/java/com/android/server/BootReceiver.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/BootReceiver.java b/services/core/java/com/android/server/BootReceiver.java index fdba098e6b80f..48f5b51a84047 100644 --- a/services/core/java/com/android/server/BootReceiver.java +++ b/services/core/java/com/android/server/BootReceiver.java @@ -476,7 +476,11 @@ public class BootReceiver extends BroadcastReceiver { */ public static void addTombstoneToDropBox(Context ctx, File tombstone, boolean proto) { final DropBoxManager db = ctx.getSystemService(DropBoxManager.class); - final String bootReason = SystemProperties.get("ro.boot.bootreason", null); + if (db == null) { + Slog.e(TAG, "Can't log tombstone: DropBoxManager not available"); + return; + } + HashMap timestamps = readTimestamps(); try { if (proto) { @@ -484,7 +488,7 @@ public class BootReceiver extends BroadcastReceiver { } else { final String headers = getBootHeadersToLogAndUpdate(); addFileToDropBox(db, timestamps, headers, tombstone.getPath(), LOG_SIZE, - TAG_TOMBSTONE); + TAG_TOMBSTONE); } } catch (IOException e) { Slog.e(TAG, "Can't log tombstone", e);