X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/c66df01e89093d14b6deed748a55d16b44253d76..f7b18eb6cf1b1130b626ae6d9d69934d6403e7e4:/files/usr/sbin/remctl-update.sh diff --git a/files/usr/sbin/remctl-update.sh b/files/usr/sbin/remctl-update.sh index 7b205bf..c5cf3f3 100755 --- a/files/usr/sbin/remctl-update.sh +++ b/files/usr/sbin/remctl-update.sh @@ -46,6 +46,15 @@ update_moiragroup() rm -f "$MOIRATMP" } +check_machine_name() +{ + machine="$1" + if ! perl -0e 'exit($ARGV[0] !~ /^[A-Za-z0-9][A-Za-z0-9._-]*$/)' -- "$machinename"; then + echo "Bad machine name" + exit 1 + fi +} + case "$1" in moiragroup) update_moiragroup "$2" @@ -76,6 +85,7 @@ case "$1" in ;; unregister) machine="$2" + check_machine_name "$machine" rm -f "$ACLDIR"/"$machine" rm -f "$MACHINEDIR"/"$machine" "$0" web @@ -83,20 +93,15 @@ case "$1" in moveregister) oldmachine="$2" newmachine="$3" + check_machine_name "$oldmachine" + check_machine_name "$newmachine" mv "$ACLDIR"/"$oldmachine" "$ACLDIR"/"$newmachine" rm -f "$MACHINEDIR"/"$oldmachine" "$0" web ;; register) machine="$2" - if [ "$machine" == "Domain-0" ]; then - echo "No, you can't control Domain 0" - exit 1 - fi - if [ -e /etc/xen/"$machine" ]; then - echo "Machine already exists outside database" - exit 1 - fi + check_machine_name "$machine" if [ -e "$ACLDIR"/"$machine" ]; then echo "Machine already registered" exit 1