diff options
author | Kalesh Singh <kaleshsingh@google.com> | 2022-03-18 20:13:02 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-18 20:13:02 +0000 |
commit | db52062fb10fb2f6f140a2c7ebb7a1f864efce96 (patch) | |
tree | 4e52cf8ea2a4a31167a0a1eedb45cdf03a806284 | |
parent | 9a075c945cbd1f5f7fda22c00582f3c88d56604f (diff) | |
parent | ecce139c533f9339ccf49c7ed2a722f2337c4c3d (diff) | |
download | interfaces-db52062fb10fb2f6f140a2c7ebb7a1f864efce96.tar.gz |
Merge "system suspend: Handle unexpected wakelock stat value format" am: 2e32e07e72 am: ecce139c53
Original change: https://android-review.googlesource.com/c/platform/system/hardware/interfaces/+/2030852
Change-Id: Ibbf2b648eb16d56f67f29390f696670eddee2189
-rw-r--r-- | suspend/1.0/default/WakeLockEntryList.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/suspend/1.0/default/WakeLockEntryList.cpp b/suspend/1.0/default/WakeLockEntryList.cpp index d0bb1ce..a5b1de5 100644 --- a/suspend/1.0/default/WakeLockEntryList.cpp +++ b/suspend/1.0/default/WakeLockEntryList.cpp @@ -18,10 +18,15 @@ #include <android-base/file.h> #include <android-base/logging.h> +#include <android-base/parseint.h> +#include <android-base/stringprintf.h> #include <iomanip> +using android::base::ParseInt; using android::base::ReadFdToString; +using android::base::Readlink; +using android::base::StringPrintf; namespace android { namespace system { @@ -258,7 +263,17 @@ WakeLockInfo WakeLockEntryList::createKernelEntry(const std::string& kwlId) cons continue; } - int64_t statVal = std::stoll(valStr); + int64_t statVal; + if (!ParseInt(valStr, &statVal)) { + std::string path; + if (Readlink(StringPrintf("/proc/self/fd/%d", statFd.get()), &path)) { + LOG(ERROR) << "Unexpected format for wakelock stat value (" << valStr + << ") from file: " << path; + } else { + LOG(ERROR) << "Unexpected format for wakelock stat value (" << valStr << ")"; + } + continue; + } if (statName == "active_count") { info.activeCount = statVal; |