diff options
| -rw-r--r-- | core/java/android/net/NetworkAgent.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java index 8df9916deb06..80e5b91ecc0c 100644 --- a/core/java/android/net/NetworkAgent.java +++ b/core/java/android/net/NetworkAgent.java @@ -223,6 +223,9 @@ public abstract class NetworkAgent extends Handler { * Called by the bearer code when it has a new score for this network. */ public void sendNetworkScore(int score) { + if (score < 0) { + throw new IllegalArgumentException("Score must be >= 0"); + } queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, new Integer(score)); } diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 3062a9209ebe..75090db2d0a7 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4746,6 +4746,11 @@ public class ConnectivityService extends IConnectivityManager.Stub { private void updateNetworkScore(NetworkAgentInfo nai, int score) { if (DBG) log("updateNetworkScore for " + nai.name() + " to " + score); + if (score < 0) { + loge("updateNetworkScore for " + nai.name() + " got a negative score (" + score + + "). Bumping score to min of 0"); + score = 0; + } nai.currentScore = score; |