From 39ff28c3f36673e373dac6d2a8a12f0bf0dfceff Mon Sep 17 00:00:00 2001 From: Darren 'Tadgy' Austin Date: Mon, 8 Mar 2021 22:58:01 +0000 Subject: Fix domain name validation checks. Thanks to xbeastx74 on LQ for the report. --- netconfig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/netconfig b/netconfig index a33b85d..bb5a5ac 100644 --- a/netconfig +++ b/netconfig @@ -492,8 +492,11 @@ EOF DOMAIN="`cat $TMP/SeTdom`" rm -f $TMP/SeTdom $TMP/tempmsg # These regexes doon't catch everything, just basic syntax mistakes. - if [ "$DOMAIN" = "" ] || [[ ! "$DOMAIN" =~ ^([[:alnum:]]+[-.]*[[:alnum:]]+)+$ ]] || \ - [[ "${DOMAIN:0:1}" =~ ^[.-]$ ]] || [[ "${DOMAIN: -1:1}" == ^[.-]$ ]]; then + DN="${DOMAIN%.*}" + TLD="${DOMAIN##*.}" + if [ -z "$DOMAIN" ] || [ -z "$TLD" ] || [ -z "$DN" ] || [[ ! "$DOMAIN" =~ ^[^.-][[:alnum:].-]+[^.-]$ ]] || \ + [[ ! "$DN" =~ ^[^.-][[:alnum:].-]+[^.-]$ ]] || [[ "$DN" =~ \.\. ]] || [[ "$DN" =~ -- ]] || \ + [[ ! "$TLD" =~ ^[^-][[:alnum:]-]+[^-]$ ]]; then dialog --title "DOMAINNAME" --ok-button "Back" --msgbox \ "That doesn't appear to be a valid domain name.\n Domain names can only contain letters and numbers, hyphens -- cgit v1.2.3