From e58d4c3d4be99cba98f64b369b10fda71cc067eb Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 3 Jul 2016 10:12:31 +0200 Subject: [PATCH] Guarantee native stop --- .../main/java/eu/faircode/netguard/ServiceSinkhole.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java index bc8d8e61..e10a82da 100644 --- a/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java +++ b/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java @@ -1129,7 +1129,13 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS private void stopNative(ParcelFileDescriptor vpn, boolean clear) { Log.i(TAG, "Stop native clear=" + clear); - jni_stop(vpn.getFd(), clear); + try { + jni_stop(vpn.getFd(), clear); + } catch (Throwable ex) { + // File descriptor might be closed + Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); + jni_stop(-1, clear); + } } private void unprepare() {