From d594290fd9ff854742180c0b03cd760d25efcfd4 Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Thu, 2 Aug 2018 10:25:02 -0700 Subject: [PATCH] NetworkAgent: Send primitive integer in score |Integer| is not parcelable and hences crashes when the binder call crosses a process boundary. Using a primitive integer should suffice for sending the value to the server. There are no other usage of |EVENT_NETWORK_SCORE_CHANGED| in the codebase. Bug: 112358948 Test: Device boots up and able to make wifi connection. Change-Id: I4c8fc17f4b803f69a4d882c71a8ce014a194d1ba --- core/java/android/net/NetworkAgent.java | 2 +- services/core/java/com/android/server/ConnectivityService.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java index 52a2354840..081d8d1290 100644 --- a/core/java/android/net/NetworkAgent.java +++ b/core/java/android/net/NetworkAgent.java @@ -372,7 +372,7 @@ public abstract class NetworkAgent extends Handler { if (score < 0) { throw new IllegalArgumentException("Score must be >= 0"); } - queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, new Integer(score)); + queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, score, 0); } /** diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 7a4ac9b10f..23bf92f2ff 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2097,8 +2097,7 @@ public class ConnectivityService extends IConnectivityManager.Stub break; } case NetworkAgent.EVENT_NETWORK_SCORE_CHANGED: { - Integer score = (Integer) msg.obj; - if (score != null) updateNetworkScore(nai, score.intValue()); + updateNetworkScore(nai, msg.arg1); break; } case NetworkAgent.EVENT_SET_EXPLICITLY_SELECTED: {