From 05b4e395a988c23f78fe7e90fa1b550fcde2112b Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 30 Apr 2018 17:37:34 +0200 Subject: Tunnel importer: stricter file filters Signed-off-by: Jason A. Donenfeld --- .../com/wireguard/android/fragment/TunnelListFragment.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java b/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java index 683a8b6d..719960af 100644 --- a/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java +++ b/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java @@ -96,6 +96,8 @@ public class TunnelListFragment extends BaseFragment { boolean isZip = name.toLowerCase().endsWith(".zip"); if (name.toLowerCase().endsWith(".conf")) name = name.substring(0, name.length() - ".conf".length()); + else if (!isZip) + throw new IllegalArgumentException("File must be .conf or .zip"); if (isZip) { ZipInputStream zip = new ZipInputStream(contentResolver.openInputStream(uri)); @@ -128,8 +130,12 @@ public class TunnelListFragment extends BaseFragment { futureTunnels.add(tunnelManager.create(name, Config.from(contentResolver.openInputStream(uri))).toCompletableFuture()); } - if (futureTunnels.isEmpty() && throwables.size() == 1) - throw throwables.get(0); + if (futureTunnels.isEmpty()) { + if (throwables.size() == 1) + throw throwables.get(0); + else if (throwables.isEmpty()) + throw new IllegalArgumentException("No configurations found"); + } return CompletableFuture.allOf(futureTunnels.toArray(new CompletableFuture[futureTunnels.size()])); }).whenComplete((future, exception) -> { -- cgit v1.2.3-59-g8ed1b