From 563017099b9210a3e7631b350108f59059ebc128 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 9 Feb 2018 10:06:59 -0700 Subject: [PATCH 1/2] Shore up dividing by zero protections. We're already trying to protect against zero elsewhere in this file, but we've seen evidence of it still happening, so add last-ditch protections. Test: builds, boots Bug: 73060623 Change-Id: I0549ed08f906521a8dbd9ff6162f80fa9b388434 (cherry picked from commit 1e80651d2afa2ffec8e972aa45454838cc08a553) --- .../core/java/com/android/server/net/NetworkStatsCollection.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/net/NetworkStatsCollection.java b/services/core/java/com/android/server/net/NetworkStatsCollection.java index 961a451778..3cc4d83267 100644 --- a/services/core/java/com/android/server/net/NetworkStatsCollection.java +++ b/services/core/java/com/android/server/net/NetworkStatsCollection.java @@ -187,6 +187,7 @@ public class NetworkStatsCollection implements FileRotator.Reader { */ @VisibleForTesting public static long multiplySafe(long value, long num, long den) { + if (den == 0) den = 1; long x = value; long y = num; From 8b48b7ffc5536cb3a820f088b82640fe1f12b5af Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 16 Apr 2018 16:39:55 +0000 Subject: [PATCH 2/2] Revert "OP_GET_USAGE_STATS should be noted, not checked." This reverts commit 930aeb0c00a40369cab2793353208095eb40e438. Reason for revert: ijpedowitz@ Bug: 77662908 Change-Id: I5dd0ad5038df90ea8a80ba6f583ee46fb24600c2 Exempt-From-Owner-Approval: keep tests passing (cherry picked from commit c6624c7a1af478896c3ebd770cd375e8446567df) --- .../core/java/com/android/server/net/NetworkStatsAccess.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/net/NetworkStatsAccess.java b/services/core/java/com/android/server/net/NetworkStatsAccess.java index cebc472178..98fe770774 100644 --- a/services/core/java/com/android/server/net/NetworkStatsAccess.java +++ b/services/core/java/com/android/server/net/NetworkStatsAccess.java @@ -174,7 +174,7 @@ public final class NetworkStatsAccess { AppOpsManager appOps = (AppOpsManager) context.getSystemService( Context.APP_OPS_SERVICE); - final int mode = appOps.noteOp(AppOpsManager.OP_GET_USAGE_STATS, + final int mode = appOps.checkOp(AppOpsManager.OP_GET_USAGE_STATS, callingUid, callingPackage); if (mode == AppOpsManager.MODE_DEFAULT) { // The default behavior here is to check if PackageManager has given the app