diff options
author | Steve Kondik <shade@chemlab.org> | 2010-06-06 07:10:22 -0400 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2010-06-06 07:11:19 -0400 |
commit | b17b2987d926fcf31d6072b6264aa739609022dd (patch) | |
tree | 3b6da68963403da696e702d2a10d5d05c3999097 | |
parent | f44c5efd3185f34a3340b14128e6128244dcf018 (diff) | |
download | android_frameworks_base-b17b2987d926fcf31d6072b6264aa739609022dd.tar.gz android_frameworks_base-b17b2987d926fcf31d6072b6264aa739609022dd.tar.bz2 android_frameworks_base-b17b2987d926fcf31d6072b6264aa739609022dd.zip |
Avoid running past the end of the tokenizer.
-rw-r--r-- | services/java/com/android/server/ProcessStats.java | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/services/java/com/android/server/ProcessStats.java b/services/java/com/android/server/ProcessStats.java index ac3b7235447..a185d2860e4 100644 --- a/services/java/com/android/server/ProcessStats.java +++ b/services/java/com/android/server/ProcessStats.java @@ -514,20 +514,23 @@ public class ProcessStats { StringTokenizer st = new StringTokenizer(file, "\n "); while (st.hasMoreElements()) { String token = st.nextToken(); - try { - long val = Long.parseLong(token); - tempSpeeds[speed] = val; - token = st.nextToken(); - val = Long.parseLong(token); - tempTimes[speed] = val; - speed++; - if (speed == MAX_SPEEDS) break; // No more - if (localLOGV && out == null) { - Log.v(TAG, "First time : Speed/Time = " + tempSpeeds[speed - 1] - + "\t" + tempTimes[speed - 1]); + if (st.hasMoreElements()) { + try { + + long val = Long.parseLong(token); + tempSpeeds[speed] = val; + token = st.nextToken(); + val = Long.parseLong(token); + tempTimes[speed] = val; + speed++; + if (speed == MAX_SPEEDS) break; // No more + if (localLOGV && out == null) { + Log.v(TAG, "First time : Speed/Time = " + tempSpeeds[speed - 1] + + "\t" + tempTimes[speed - 1]); + } + } catch (NumberFormatException nfe) { + Log.i(TAG, "Unable to parse time_in_state"); } - } catch (NumberFormatException nfe) { - Log.i(TAG, "Unable to parse time_in_state"); } } } |