summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPer Andersson <per.andersson3@sonyericsson.com>2011-02-21 09:55:42 +0100
committerJohan Redestig <johan.redestig@sonyericsson.com>2011-02-21 09:55:42 +0100
commit3d865240e776374ced4ea50e6cb7f8ac92a32640 (patch)
tree868e81c46940ff9ebf66059e4b1c6ee59b43cadc
parent7118bdec523568842e70555e353951df9f2596fd (diff)
downloadframeworks_base-3d865240e776374ced4ea50e6cb7f8ac92a32640.zip
frameworks_base-3d865240e776374ced4ea50e6cb7f8ac92a32640.tar.gz
frameworks_base-3d865240e776374ced4ea50e6cb7f8ac92a32640.tar.bz2
Adding a sanity test in the while loop in readHistory()
Adding a sanity test in the while loop in readHistory() which is useful in case the file read (batterystats.bin), is corrupt. The file can get corrupt (missing end of file marker -1) if writeHistory fails for some reason. Without this change readHistory will continue looping untill an OutOfMemory is thrown. Change-Id: I3418d258e7cb99aa2f9d934c9449a19806499ce4
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index fb4dff8..5b9c78c 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -4563,7 +4563,7 @@ public final class BatteryStatsImpl extends BatteryStats {
mHistory = mHistoryEnd = mHistoryCache = null;
mHistoryBaseTime = 0;
long time;
- while ((time=in.readLong()) >= 0) {
+ while (in.dataAvail() > 0 && (time=in.readLong()) >= 0) {
HistoryItem rec = new HistoryItem(time, in);
addHistoryRecordLocked(rec);
if (rec.time > mHistoryBaseTime) {