From 366ae7dab61730b0f835974bf6c14536370bef75 Mon Sep 17 00:00:00 2001 From: Mygod Date: Fri, 14 Dec 2018 00:56:28 +0800 Subject: [PATCH] Be more careful about checking upstreams were removed --- mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt index 75aa6d88..2e5a78c2 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/Routing.kt @@ -90,7 +90,8 @@ class Routing(val downstream: String, ownerAddress: InterfaceAddress? = null) { override fun onLost() = synchronized(this@Routing) { val subrouting = subrouting ?: return - check(upstreams.remove(subrouting.upstream)) + // we could be removing fallback subrouting which no collision could ever happen, check before removing + if (subrouting.upstream != null) check(upstreams.remove(subrouting.upstream)) subrouting.close() TrafficRecorder.update() // record stats before removing rules to prevent stats losing subrouting.revert()