diff options
author | Per Andersson <per.andersson3@sonyericsson.com> | 2011-02-21 09:55:42 +0100 |
---|---|---|
committer | Johan Redestig <johan.redestig@sonyericsson.com> | 2011-02-21 09:55:42 +0100 |
commit | 3d865240e776374ced4ea50e6cb7f8ac92a32640 (patch) | |
tree | 868e81c46940ff9ebf66059e4b1c6ee59b43cadc | |
parent | 7118bdec523568842e70555e353951df9f2596fd (diff) | |
download | frameworks_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.java | 2 |
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) { |