Avoid crashing in RunDumpsysProto when not zipping
When a .zip file is not being generated, RunDumpsysProto will segfault
while trying to get the last ZipWriter::FileEntry because ds.zip_writer_
is nullptr. This change avoids running the method altogether if not
zipping.
Bug: 76120715
Test: dumpsys
Change-Id: I184dd7b72564408e313f32f3045e2fe0e4521b5b
Merged-In: I184dd7b72564408e313f32f3045e2fe0e4521b5b
diff --git a/cmds/dumpstate/dumpstate.cpp b/cmds/dumpstate/dumpstate.cpp
index fd2fccb..bfd0f16 100644
--- a/cmds/dumpstate/dumpstate.cpp
+++ b/cmds/dumpstate/dumpstate.cpp
@@ -1159,6 +1159,10 @@
static void RunDumpsysProto(const std::string& title, int priority,
std::chrono::milliseconds timeout,
std::chrono::milliseconds service_timeout) {
+ if (!ds.IsZipping()) {
+ MYLOGD("Not dumping %s because it's not a zipped bugreport\n", title.c_str());
+ return;
+ }
sp<android::IServiceManager> sm = defaultServiceManager();
Dumpsys dumpsys(sm.get());
Vector<String16> args;