Skip to content

Commit 84f9d01

Browse files
committed
Sec: Fix input validation in v-change-sys-service-config
- service: Validate service_format, required arg - restart: Validate bool_format, optional arg
1 parent 5b27dff commit 84f9d01

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

bin/v-change-sys-service-config

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
src=$1
1414
service=$2
1515
restart=$3
16-
echo "$0 $*" >/tmp/t.log
1716

1817
# Includes
1918
source $HESTIA/func/main.sh
@@ -25,6 +24,8 @@ source $HESTIA/conf/hestia.conf
2524
#----------------------------------------------------------#
2625

2726
check_args '2' "$#" 'CONFIG SERVICE [RESTART]'
27+
is_format_valid 'service' 'restart'
28+
2829
if [ ! -e "$src" ]; then
2930
check_result "$E_NOTEXIST" "$src config doesn't exist"
3031
fi
@@ -82,11 +83,11 @@ done
8283

8384
# Checking diff between src and dst configs
8485
for config in $dst; do
85-
diff -q $src $config >/dev/null
86+
diff -q "$src" "$config" >/dev/null
8687

8788
if [ $? -ne 0 ]; then
88-
cp $config $config.vst.back
89-
cp $src $config
89+
cp "$config" "$config.vst.back"
90+
cp "$src" "$config"
9091
update="yes"
9192
fi
9293
done
@@ -101,16 +102,16 @@ if [ "$update" = 'yes' ] && [ "$restart" != 'no' ]; then
101102
if [ "$WEB_SYSTEM" = "nginx" ]; then
102103
service=$(ls /etc/init.d/php*fpm* |cut -f 4 -d / |sed -n 1p)
103104
else
104-
service=$WEB_SYSTEM
105+
service="$WEB_SYSTEM"
105106
fi
106107
fi
107108

108-
$BIN/v-restart-service $service > /dev/null 2>&1
109+
$BIN/v-restart-service "$service" > /dev/null 2>&1
109110

110111
if [ $? -ne 0 ]; then
111112
for config in $dst; do
112-
cat $config.vst.back > $config
113-
rm -f $config.vst.back
113+
cat "$config.vst.back" > "$config"
114+
rm -f "$config.vst.back"
114115
done
115116
check_result $E_RESTART "ERROR: $service failed to start with new configuration."
116117
fi

0 commit comments

Comments
 (0)