diff options
author | Trumeet <17158086+Trumeet@users.noreply.github.com> | 2021-01-09 13:01:15 -0800 |
---|---|---|
committer | Trumeet <17158086+Trumeet@users.noreply.github.com> | 2021-01-09 13:01:15 -0800 |
commit | 0a3b6d430aa390772a66b42af8ad46763c30bd45 (patch) | |
tree | f0604fb0044ea08d7038168ac5e3dea85a6d2e6f /central | |
parent | e0f56eda062a63ddd12e42c858190ce4b0d99197 (diff) | |
download | dn42peering-0a3b6d430aa390772a66b42af8ad46763c30bd45.tar dn42peering-0a3b6d430aa390772a66b42af8ad46763c30bd45.tar.gz dn42peering-0a3b6d430aa390772a66b42af8ad46763c30bd45.tar.bz2 dn42peering-0a3b6d430aa390772a66b42af8ad46763c30bd45.zip |
fix(central): add non-null check for wg_endpoint_port form field
Diffstat (limited to 'central')
-rw-r--r-- | central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java b/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java index e3da5fe..57e2701 100644 --- a/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java +++ b/central/src/main/java/moe/yuuta/dn42peering/manage/ManageHandler.java @@ -683,17 +683,20 @@ public class ManageHandler implements ISubRouter { int wgEndpointPort = -1; if (form.containsKey("wg_endpoint_port")) { if (type == Peer.VPNType.WIREGUARD) { - if (wgEndpointCorrect) { - try { - wgEndpointPort = Integer.parseInt(form.getString("wg_endpoint_port")); - if (wgEndpointPort < 0 || wgEndpointPort > 65535) { - errors.add("WireGuard EndPoint port must be in UDP port range."); + final String rawPort = form.getString("wg_endpoint_port"); + if(rawPort != null && !rawPort.isEmpty()) { + if (wgEndpointCorrect) { + try { + wgEndpointPort = Integer.parseInt(rawPort); + if (wgEndpointPort < 0 || wgEndpointPort > 65535) { + errors.add("WireGuard EndPoint port must be in UDP port range."); + } + } catch (NumberFormatException | NullPointerException ignored) { + errors.add("WireGuard EndPoint port is not valid. It must be a number."); } - } catch (NumberFormatException | NullPointerException ignored) { - errors.add("WireGuard EndPoint port is not valid. It must be a number."); + } else { + errors.add("WireGuard EndPoint IP is not specified or invalid, but port is specified."); } - } else { - errors.add("WireGuard EndPoint IP is not specified or invalid, but port is specified."); } } else { errors.add("WireGuard tunneling is not selected but WireGuard Endpoint configuration appears."); |