summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/os/KernelCpuUidTimeReader.java23
1 files changed, 16 insertions, 7 deletions
diff --git a/core/java/com/android/internal/os/KernelCpuUidTimeReader.java b/core/java/com/android/internal/os/KernelCpuUidTimeReader.java
index e6d044f4722b..f1eb2fb56331 100644
--- a/core/java/com/android/internal/os/KernelCpuUidTimeReader.java
+++ b/core/java/com/android/internal/os/KernelCpuUidTimeReader.java
@@ -403,7 +403,7 @@ public abstract class KernelCpuUidTimeReader<T> {
}
private long[] readFreqs(String line) {
- if (line == null) {
+ if (line == null || line.trim().isEmpty()) {
return null;
}
final String[] lineArray = line.split(" ");
@@ -620,14 +620,18 @@ public abstract class KernelCpuUidTimeReader<T> {
return true;
}
- String str = line.toString();
+ String str = line.toString().trim();
+ if (str.isEmpty()) {
+ Slog.w(mTag, "Empty uid_concurrent_active_time");
+ return false;
+ }
if (!str.startsWith("cpus:")) {
- Slog.wtf(mTag, "Malformed uid_concurrent_active_time line: " + line);
+ Slog.wtf(mTag, "Malformed uid_concurrent_active_time line: " + str);
return false;
}
int cores = Integer.parseInt(str.substring(5).trim(), 10);
if (cores <= 0) {
- Slog.wtf(mTag, "Malformed uid_concurrent_active_time line: " + line);
+ Slog.wtf(mTag, "Malformed uid_concurrent_active_time line: " + str);
return false;
}
mCores = cores;
@@ -750,17 +754,22 @@ public abstract class KernelCpuUidTimeReader<T> {
if (mNumClusters > 0) {
return true;
}
+ String lineStr = line.toString().trim();
+ if (lineStr.isEmpty()) {
+ Slog.w(mTag, "Empty uid_concurrent_policy_time");
+ return false;
+ }
// Parse # cores in clusters.
- String[] lineArray = line.toString().split(" ");
+ String[] lineArray = lineStr.split(" ");
if (lineArray.length % 2 != 0) {
- Slog.wtf(mTag, "Malformed uid_concurrent_policy_time line: " + line);
+ Slog.wtf(mTag, "Malformed uid_concurrent_policy_time line: " + lineStr);
return false;
}
int[] clusters = new int[lineArray.length / 2];
int cores = 0;
for (int i = 0; i < clusters.length; i++) {
if (!lineArray[i * 2].startsWith("policy")) {
- Slog.wtf(mTag, "Malformed uid_concurrent_policy_time line: " + line);
+ Slog.wtf(mTag, "Malformed uid_concurrent_policy_time line: " + lineStr);
return false;
}
clusters[i] = Integer.parseInt(lineArray[i * 2 + 1], 10);