bin/update: Check that the hostname is actually plausibly formed.
[dyndns] / bin / update
index a9c2716..957df07 100755 (executable)
@@ -31,6 +31,13 @@ doneargs='case $# in 0) ;; *) fail_usage ;; esac'
 checkhost () {
   host=$1
 
+  case "$host" in
+    *..* | .* | *. | *[!-_.a-zA-Z0-9]*)
+      echo >&2 "$0: invalid hostname"
+      exit 2
+      ;;
+  esac
+
   matchp=nil
   for pat in $DYNDNS_HOST; do
     case "$host" in $pat) matchp=t ;; esac