Fix remaining grep regex errors in cPanel user functions
CRITICAL FIX:
Three more grep commands were using ${username} variable in patterns
without -F flag, causing "Unmatched [" errors when usernames contain
bracket characters.
AFFECTED FUNCTIONS:
1. get_cpanel_user_domains() lines 254, 258
- grep ": ${username}$"
- grep "==${username}$"
2. get_cpanel_user_databases() line 317
- grep "^${username}_"
THE FIX:
Changed all to use grep -F (fixed string matching):
OLD: grep ": ${username}$"
NEW: grep -F ": ${username}" | grep -F "$username\$"
OLD: grep "^${username}_"
NEW: grep -F "${username}_"
IMPACT:
Eliminates ALL remaining "Unmatched [" errors during reference database
build when indexing users with special characters in usernames.
This completes the grep regex error fixes across the entire codebase.
This commit is contained in:
+3
-3
@@ -251,11 +251,11 @@ get_cpanel_user_domains() {
|
||||
local username="$1"
|
||||
|
||||
# Primary domain (format: domain: user)
|
||||
grep ": ${username}$" /etc/trueuserdomains 2>/dev/null | cut -d: -f1 || true
|
||||
grep -F ": ${username}" /etc/trueuserdomains 2>/dev/null | grep -F "$username\$" 2>/dev/null | cut -d: -f1 || true
|
||||
|
||||
# Addon domains
|
||||
if [ -f "/etc/userdatadomains" ]; then
|
||||
grep "==${username}$" /etc/userdatadomains 2>/dev/null | cut -d: -f1 || true
|
||||
grep -F "==${username}" /etc/userdatadomains 2>/dev/null | grep -F "$username\$" 2>/dev/null | cut -d: -f1 || true
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -314,7 +314,7 @@ get_cpanel_user_databases() {
|
||||
local username="$1"
|
||||
|
||||
# cPanel databases typically follow pattern: username_dbname
|
||||
mysql -e "SHOW DATABASES" 2>/dev/null | grep "^${username}_" || true
|
||||
mysql -e "SHOW DATABASES" 2>/dev/null | grep -F "${username}_" 2>/dev/null || true
|
||||
}
|
||||
|
||||
get_plesk_user_databases() {
|
||||
|
||||
Reference in New Issue
Block a user