@@ -28,7 +28,8 @@ function backup_original_env_vars() {
28
28
29
29
# Backup original value if not already backed up
30
30
if [[ -z " ${! backup_var} " ]] && [[ -n " ${! common_var} " ]]; then
31
- eval " ${backup_var} =\" ${! common_var} \" "
31
+ # Use printf -v to avoid eval and preserve quotes verbatim
32
+ printf -v " $backup_var " ' %s' " ${! common_var} "
32
33
echo " Backed up original ${common_var} =${! common_var} to ${backup_var} "
33
34
fi
34
35
done
@@ -43,11 +44,11 @@ function restore_original_env_vars() {
43
44
44
45
# Restore original value if backup exists
45
46
if [[ -n " ${! backup_var} " ]]; then
46
- eval " ${ common_var} = \" ${! backup_var} \" "
47
+ printf -v " $ common_var" ' %s ' " ${! backup_var} "
47
48
echo " Restored original ${backup_var} =${! backup_var} to ${common_var} "
48
49
else
49
50
# Clear the variable if no backup exists
50
- eval " ${ common_var} = \"\ ""
51
+ printf -v " $ common_var" ' %s ' " "
51
52
echo " Cleared ${common_var} (no original backup)"
52
53
fi
53
54
done
@@ -64,12 +65,12 @@ function assign_browser_specific_env_vars() {
64
65
65
66
# Check if the browser-specific environment variable exists
66
67
if [[ -n " ${! browser_specific_var} " ]]; then
67
- # Assign the browser-specific value to the common variable
68
- eval " ${ common_var} = \" ${! browser_specific_var} \" "
68
+ # Assign the browser-specific value to the common variable, preserving quotes
69
+ printf -v " $ common_var" ' %s ' " ${! browser_specific_var} "
69
70
echo " Assigned ${browser_specific_var} =${! browser_specific_var} to ${common_var} "
70
71
elif [[ -n " ${! backup_var} " ]]; then
71
72
# Inherit original value if browser-specific value is not set
72
- eval " ${ common_var} = \" ${! backup_var} \" "
73
+ printf -v " $ common_var" ' %s ' " ${! backup_var} "
73
74
echo " Inherited original ${backup_var} =${! backup_var} to ${common_var} "
74
75
fi
75
76
done
@@ -178,6 +179,10 @@ if [ -d "/opt/selenium/browsers" ]; then
178
179
echo " [[node.driver-configuration]]" >> " $FILENAME "
179
180
echo " display-name = \" ${SE_NODE_BROWSER_NAME} \" " >> " $FILENAME "
180
181
echo " stereotype = '${SE_NODE_STEREOTYPE} '" >> " $FILENAME "
182
+ # Validate SE_NODE_MAX_SESSIONS is a positive integer
183
+ if [[ " ${SE_NODE_MAX_SESSIONS} " =~ ^[0-9]+$ ]] && [[ " ${SE_NODE_MAX_SESSIONS} " -gt 0 ]]; then
184
+ echo " max-sessions = ${SE_NODE_MAX_SESSIONS} " >> " $FILENAME "
185
+ fi
181
186
echo " " >> " $FILENAME "
182
187
fi
183
188
0 commit comments