summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn/core
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn/core')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java10
-rw-r--r--main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java12
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);