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);