Resolve segfault when running send-broadcast command while
statscompanion service is not connected
Test: statsd, statsd_test
Change-Id: Ie98de1884f8d852c31c14db146d3da44cfc5aa8b
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp
index 10952a9..ef01ec7 100644
--- a/cmds/statsd/src/StatsService.cpp
+++ b/cmds/statsd/src/StatsService.cpp
@@ -320,9 +320,15 @@
return UNKNOWN_ERROR;
}
auto receiver = mConfigManager->GetConfigReceiver(ConfigKey(uid, name));
- auto sc = getStatsCompanionService();
- sc->sendBroadcast(String16(receiver.first.c_str()), String16(receiver.second.c_str()));
- ALOGD("StatsService::trigger broadcast succeeded to %s, %s", args[1].c_str(), args[2].c_str());
+ sp<IStatsCompanionService> sc = getStatsCompanionService();
+ if (sc != nullptr) {
+ sc->sendBroadcast(String16(receiver.first.c_str()), String16(receiver.second.c_str()));
+ ALOGD("StatsService::trigger broadcast succeeded to %s, %s", args[1].c_str(),
+ args[2].c_str());
+ } else {
+ ALOGD("Could not access statsCompanion");
+ }
+
return NO_ERROR;
}