From 4d889e635d1def2a0475c509ef6f471d9371fcf0 Mon Sep 17 00:00:00 2001 From: yro Date: Fri, 17 Nov 2017 15:44:48 -0800 Subject: [PATCH] Resolve segfault when running send-broadcast command while statscompanion service is not connected Test: statsd, statsd_test Change-Id: Ie98de1884f8d852c31c14db146d3da44cfc5aa8b --- cmds/statsd/src/StatsService.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp index 10952a97b1639..ef01ec7563f5c 100644 --- a/cmds/statsd/src/StatsService.cpp +++ b/cmds/statsd/src/StatsService.cpp @@ -320,9 +320,15 @@ status_t StatsService::cmd_trigger_broadcast(FILE* out, Vector& args) { 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 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; }