From 728d52a6db0897502b0e60c870b718a5e3a91244 Mon Sep 17 00:00:00 2001 From: Chenjie Yu Date: Tue, 17 Apr 2018 15:20:21 -0700 Subject: [PATCH] Fix merge isolated uid to host uid Bug: 78190783 Fix: 78190783 Test: unit test Change-Id: I71b5c575bf3c226509ebf088cb5dd961acd93459 --- cmds/statsd/src/external/puller_util.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/cmds/statsd/src/external/puller_util.cpp b/cmds/statsd/src/external/puller_util.cpp index ea23623d3b6ce..57fe10e51bfcc 100644 --- a/cmds/statsd/src/external/puller_util.cpp +++ b/cmds/statsd/src/external/puller_util.cpp @@ -112,10 +112,13 @@ void mergeIsolatedUidsToHostUid(vector>& data, const spsecond; // uidField is the field number in proto, } const vector& additiveFields = StatsPullerManagerImpl::kAllPullAtomInfo.find(tagId)->second.additiveFields; @@ -129,11 +132,13 @@ void mergeIsolatedUidsToHostUid(vector>& data, const sp* valueList = data[i]->getMutableValues(); - int err = 0; - int uid = data[i]->GetInt(1, &err); - if (err != 0) { - VLOG("Bad uid field for %s", data[i]->ToString().c_str()); - return; + int uid; + if (uidField > 0 && (int)data[i]->getValues().size() >= uidField && + (data[i]->getValues())[uidField - 1].mValue.getType() == INT) { + uid = (*data[i]->getMutableValues())[uidField - 1].mValue.int_value; + } else { + ALOGE("Malformed log, uid not found. %s", data[i]->ToString().c_str()); + continue; } const int hostUid = uidMap->getHostUidOrSelf(uid);