aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/wg-quick.bash
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-02-06 12:52:09 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2018-02-06 12:52:09 +0100
commitdd85f27b6ec98de1527a935a7f0930c2111d7930 (patch)
treefdfa8c958cebc27efbdbce4cc73522f161660c97 /src/tools/wg-quick.bash
parenttools: endian.h is not portable (diff)
downloadwireguard-monolithic-historical-dd85f27b6ec98de1527a935a7f0930c2111d7930.tar.xz
wireguard-monolithic-historical-dd85f27b6ec98de1527a935a7f0930c2111d7930.zip
wg-quick: match from beginning rather than shift right
Before, this meant that it simply took the last 15 characters, instead of erroring out when there's more than 15 chars.
Diffstat (limited to 'src/tools/wg-quick.bash')
-rwxr-xr-xsrc/tools/wg-quick.bash4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/tools/wg-quick.bash b/src/tools/wg-quick.bash
index a028b98..80921bf 100755
--- a/src/tools/wg-quick.bash
+++ b/src/tools/wg-quick.bash
@@ -31,10 +31,10 @@ parse_options() {
CONFIG_FILE="$1"
[[ $CONFIG_FILE =~ ^[a-zA-Z0-9_=+.-]{1,15}$ ]] && CONFIG_FILE="/etc/wireguard/$CONFIG_FILE.conf"
[[ -e $CONFIG_FILE ]] || die "\`$CONFIG_FILE' does not exist"
- [[ $CONFIG_FILE =~ /?([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]] || die "The config file must be a valid interface name, followed by .conf"
+ [[ $CONFIG_FILE =~ (^|/)([a-zA-Z0-9_=+.-]{1,15})\.conf$ ]] || die "The config file must be a valid interface name, followed by .conf"
CONFIG_FILE="$(readlink -f "$CONFIG_FILE")"
((($(stat -c '0%#a' "$CONFIG_FILE") & $(stat -c '0%#a' "${CONFIG_FILE%/*}") & 0007) == 0)) || echo "Warning: \`$CONFIG_FILE' is world accessible" >&2
- INTERFACE="${BASH_REMATCH[1]}"
+ INTERFACE="${BASH_REMATCH[2]}"
shopt -s nocasematch
while read -r line || [[ -n $line ]]; do
key="${line%%=*}"; key="${key##*([[:space:]])}"; key="${key%%*([[:space:]])}"