diff options
| author | 2018-02-26 15:15:17 -0800 | |
|---|---|---|
| committer | 2018-02-27 10:49:21 -0800 | |
| commit | 255f72e73e23f79157faaf28fcea482c0fa2f5bd (patch) | |
| tree | 273ec0aa53a93868aba8d2ce0cb6fb31ebad1ed6 | |
| parent | 4e056c8bfacc2be6d36e47305df4a85f87d02bc4 (diff) | |
Return when invalid config ID was provided through adb command and
change the separator of config_uid and config_id to underscore from dash
to disambiguate negative config ids
Bug: 73896814
Test: statsd_test
Change-Id: Ib0604e9f4c104560d570a64208a9e94d7526f8d6
| -rw-r--r-- | cmds/statsd/src/StatsService.cpp | 9 | ||||
| -rw-r--r-- | cmds/statsd/src/guardrail/StatsdStats.cpp | 4 |
2 files changed, 10 insertions, 3 deletions
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp index 26db3af7d41a..bf6cee77386a 100644 --- a/cmds/statsd/src/StatsService.cpp +++ b/cmds/statsd/src/StatsService.cpp @@ -423,6 +423,13 @@ status_t StatsService::cmd_config(FILE* in, FILE* out, FILE* err, Vector<String8 } if (args[1] == "update") { + char* endp; + int64_t configID = strtoll(name.c_str(), &endp, 10); + if (endp == name.c_str() || *endp != '\0') { + fprintf(err, "Error parsing config ID.\n"); + return UNKNOWN_ERROR; + } + // Read stream into buffer. string buffer; if (!android::base::ReadFdToString(fileno(in), &buffer)) { @@ -438,7 +445,7 @@ status_t StatsService::cmd_config(FILE* in, FILE* out, FILE* err, Vector<String8 } // Add / update the config. - mConfigManager->UpdateConfig(ConfigKey(uid, StrToInt64(name)), config); + mConfigManager->UpdateConfig(ConfigKey(uid, configID), config); } else { if (argCount == 2) { cmd_remove_all_configs(out); diff --git a/cmds/statsd/src/guardrail/StatsdStats.cpp b/cmds/statsd/src/guardrail/StatsdStats.cpp index 66cb1d04a4e1..6e4512835b7a 100644 --- a/cmds/statsd/src/guardrail/StatsdStats.cpp +++ b/cmds/statsd/src/guardrail/StatsdStats.cpp @@ -367,7 +367,7 @@ void StatsdStats::dumpStats(FILE* out) const { fprintf(out, "%lu Config in icebox: \n", (unsigned long)mIceBox.size()); for (const auto& configStats : mIceBox) { fprintf(out, - "Config {%d-%lld}: creation=%d, deletion=%d, #metric=%d, #condition=%d, " + "Config {%d_%lld}: creation=%d, deletion=%d, #metric=%d, #condition=%d, " "#matcher=%d, #alert=%d, valid=%d\n", configStats.uid(), (long long)configStats.id(), configStats.creation_time_sec(), configStats.deletion_time_sec(), configStats.metric_count(), @@ -566,4 +566,4 @@ void StatsdStats::dumpStats(std::vector<uint8_t>* output, bool reset) { } // namespace statsd } // namespace os -} // namespace android
\ No newline at end of file +} // namespace android |