diff options
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/core')
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java | 10 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java | 12 |
2 files changed, 20 insertions, 2 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java b/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java index db530320..026586d5 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java @@ -564,12 +564,20 @@ public class ConfigParser { } } - Vector<String> provider = getOption("provider", 1, 1); + Vector<String> provider = getOption("provider", 1, 9); if (provider != null) { String providers = provider.get(1).toLowerCase(Locale.ROOT); if (providers.equals("legacy:default") || providers.equals("default:legacy")) np.mUseLegacyProvider = true; + + for (String prov:provider) + { + if ("legacy".equals(prov.toLowerCase(Locale.ROOT))) + { + np.mUseLegacyProvider = true; + } + } } diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 09730245..f7b65151 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -536,7 +536,11 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac if (profile == null) return; ShortcutManager shortcutManager = getSystemService(ShortcutManager.class); - shortcutManager.reportShortcutUsed(profile.getUUIDString()); + if (shortcutManager!=null) { + /* This should never been null but I do not trust Android ROMs to do the right thing + * anymore and neither seems Coverity */ + shortcutManager.reportShortcutUsed(profile.getUUIDString()); + } } private VpnProfile fetchVPNProfile(Intent intent) @@ -752,6 +756,12 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac VpnStatus.logInfo(R.string.last_openvpn_tun_config); + if (mProfile == null) + { + VpnStatus.logError("OpenVPN tries to open a VPN descriptor with mProfile==null, please report this bug with log!"); + return null; + } + boolean allowUnsetAF = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !mProfile.mBlockUnusedAddressFamilies; if (allowUnsetAF) { allowAllAFFamilies(builder); |