Skip to content

Commit

Permalink
fix: prevent infinite loop in enumerate_wildcard_locations
Browse files Browse the repository at this point in the history
  • Loading branch information
egormkn committed Nov 23, 2023
1 parent 9fbd668 commit 42cea8f
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions app/functions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,12 @@ function ascending_wildcard_locations {
# - *.example.com
local domain="${1:?}"
local first_label
regex="^[[:alnum:]_\-]+(\.[[:alpha:]]+)?$"
until [[ "$domain" =~ $regex ]]; do
tld_regex="^[[:alpha:]]+$"
regex="^[^.]+\..+$"
while [[ "$domain" =~ $regex ]]; do
first_label="${domain%%.*}"
domain="${domain/${first_label}./}"
if [[ -z "$domain" ]]; then
domain="${domain/#"${first_label}."/}"
if [[ "$domain" == "*" || "$domain" =~ $tld_regex ]]; then
return
else
echo "*.${domain}"
Expand All @@ -82,11 +83,11 @@ function descending_wildcard_locations {
# - foo.*
local domain="${1:?}"
local last_label
regex="^[[:alnum:]_\-]+$"
until [[ "$domain" =~ $regex ]]; do
regex="^.+\.[^.]+$"
while [[ "$domain" =~ $regex ]]; do
last_label="${domain##*.}"
domain="${domain/.${last_label}/}"
if [[ -z "$domain" ]]; then
domain="${domain/%".${last_label}"/}"
if [[ "$domain" == "*" ]]; then
return
else
echo "${domain}.*"
Expand Down

0 comments on commit 42cea8f

Please sign in to comment.