فهرست منبع

Sec: Fix input validation in v-add-mail-account-forward

email_forward: Validate email_format, required arg

added new 'email_forward' global validation format
Robert Zollner 6 سال پیش
والد
کامیت
01334f175b
2فایلهای تغییر یافته به همراه8 افزوده شده و 7 حذف شده
  1. 7 7
      bin/v-add-mail-account-forward
  2. 1 0
      func/main.sh

+ 7 - 7
bin/v-add-mail-account-forward

@@ -14,7 +14,7 @@ user=$1
 domain=$2
 domain_idn=$2
 account=$3
-forward=$4
+email_forward=$4
 
 # Includes
 source $HESTIA/func/main.sh
@@ -31,7 +31,7 @@ format_domain_idn
 #----------------------------------------------------------#
 
 check_args '4' "$#" 'USER DOMAIN ACCOUNT FORWARD'
-is_format_valid 'user' 'domain' 'account' 'forward'
+is_format_valid 'user' 'domain' 'account' 'email_forward'
 is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
 is_object_valid 'user' 'USER' "$user"
 is_object_unsuspended 'user' 'USER' "$user"
@@ -40,8 +40,8 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain"
 is_object_valid "mail/$domain" 'ACCOUNT' "$account"
 is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 fwd=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$FWD')
-if [ ! -z "$(echo $fwd | grep -w $forward)" ]; then
-    echo "Error: forward $forward exists"
+if [ ! -z "$(echo $fwd | grep -w "$email_forward")" ]; then
+    echo "Error: forward $email_forward exists"
     log_event "$E_EXISTS $ARGUMENTS"
     exit $E_EXISTS
 fi
@@ -56,9 +56,9 @@ check_hestia_demo_mode
 
 # Define fwd string
 if [ -z "$fwd" ]; then
-    fwd="$forward"
+    fwd="$email_forward"
 else
-    fwd="$fwd,$forward"
+    fwd="$fwd,$email_forward"
 fi
 
 # Adding forward to exim
@@ -76,7 +76,7 @@ fi
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$FWD' "$fwd"
 
 # Logging
-log_history "added forwarding from $account@$domain to $forward"
+log_history "added forwarding from $account@$domain to $email_forward"
 log_event "$OK" "$ARGUMENTS"
 
 exit

+ 1 - 0
func/main.sh

@@ -870,6 +870,7 @@ is_format_valid() {
                 domain)         is_domain_format_valid "$arg" ;;
                 dvalue)         is_dns_record_format_valid "$arg";;
                 email)          is_email_format_valid "$arg" ;;
+                email_forward)  is_email_format_valid "$arg" ;;
                 exp)            is_date_format_valid "$arg" ;;
                 extentions)     is_common_format_valid "$arg" 'extentions' ;;
                 fname)          is_name_format_valid "$arg" "first name" ;;