strtoul result shouldn't be narrowed to uint32_t before checking for ULONG_MAX

... otherwise this is always false.

Test: presubmit
Bug: 72331526
Change-Id: Ie1262ebf2eff4143bbef7b9d473c8ac5b7c9ffe4
This commit is contained in:
Yi Kong 2019-10-04 12:18:24 -07:00
parent 60d9b98423
commit 69e8325e5d

View file

@ -87,7 +87,7 @@ size_t PowerStats::parsePowerRails() {
std::string railFileName;
std::string spsFileName;
uint32_t index = 0;
uint32_t samplingRate;
unsigned long samplingRate;
for (const auto& path : mPm.devicePaths) {
railFileName = path + "/enabled_rails";
spsFileName = path + "/sampling_rate";
@ -109,10 +109,11 @@ size_t PowerStats::parsePowerRails() {
while (std::getline(railNames, line)) {
std::vector<std::string> words = android::base::Split(line, ":");
if (words.size() == 2) {
mPm.railsInfo.emplace(words[0], RailData{.devicePath = path,
.index = index,
.subsysName = words[1],
.samplingRate = samplingRate});
mPm.railsInfo.emplace(
words[0], RailData{.devicePath = path,
.index = index,
.subsysName = words[1],
.samplingRate = static_cast<uint32_t>(samplingRate)});
index++;
} else {
ALOGW("Unexpected format in file: %s", railFileName.c_str());