From 456339b760ad258f3924f2afd403da485424204b Mon Sep 17 00:00:00 2001 From: Patrick Rohr Date: Fri, 20 Aug 2021 07:56:26 +0200 Subject: prevent nullptr dereference when calling unwanted When the EthernetNetworkAgent has already been stopped, a call to unwanted will cause a crash due to a nullptr derefernce. Bug: 197279734 Test: atest EthernetNetworkFactoryTest Change-Id: Ice39c603bdd3e3139aa8ece7fb897bf7b567e74b --- java/com/android/server/ethernet/EthernetNetworkFactory.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'java') diff --git a/java/com/android/server/ethernet/EthernetNetworkFactory.java b/java/com/android/server/ethernet/EthernetNetworkFactory.java index 32dbd7e..cd086e7 100644 --- a/java/com/android/server/ethernet/EthernetNetworkFactory.java +++ b/java/com/android/server/ethernet/EthernetNetworkFactory.java @@ -506,12 +506,15 @@ public class EthernetNetworkFactory extends NetworkFactory { mNetworkFactory.getProvider(), new EthernetNetworkAgent.Callbacks() { @Override public void onNetworkUnwanted() { + // if mNetworkAgent is null, we have already called stop. + if (mNetworkAgent == null) return; + if (this == mNetworkAgent.getCallbacks()) { stop(); - } else if (mNetworkAgent != null) { + } else { Log.d(TAG, "Ignoring unwanted as we have a more modern " + "instance"); - } // Otherwise, we've already called stop. + } } }); mNetworkAgent.register(); -- cgit v1.2.3