From 2248ff32bac6bdc0500ed963c8a5e7c96e6873c0 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Thu, 11 Jul 2013 11:18:53 -0700 Subject: [PATCH] Recover from corrupt network stats. When encountering corrupt stats, throw as IOException to allow recovery at a higher level. Bug: 9794832 Change-Id: I38d000b3bd8a4c99389c40a87ee0699efb6e9049 --- core/java/android/net/NetworkStatsHistory.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/java/android/net/NetworkStatsHistory.java b/core/java/android/net/NetworkStatsHistory.java index 382b25e3773e..62d8738ba6dd 100644 --- a/core/java/android/net/NetworkStatsHistory.java +++ b/core/java/android/net/NetworkStatsHistory.java @@ -639,6 +639,7 @@ public class NetworkStatsHistory implements Parcelable { @Deprecated public static long[] readFullLongArray(DataInputStream in) throws IOException { final int size = in.readInt(); + if (size < 0) throw new ProtocolException("negative array size"); final long[] values = new long[size]; for (int i = 0; i < values.length; i++) { values[i] = in.readLong(); @@ -680,6 +681,7 @@ public class NetworkStatsHistory implements Parcelable { public static long[] readVarLongArray(DataInputStream in) throws IOException { final int size = in.readInt(); if (size == -1) return null; + if (size < 0) throw new ProtocolException("negative array size"); final long[] values = new long[size]; for (int i = 0; i < values.length; i++) { values[i] = readVarLong(in); -- 2.11.0