Proper argument escaping for special characters.

Fixes side note of QubesOS/qubes-issues#5562

(cherry picked from commit c600b1b39c)
release4.0 mm_f22e19bf
3hhh 4 years ago committed by Marek Marczykowski-Górecki
parent dcd14a4697
commit f22e19bf37
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

@ -1,13 +1,13 @@
#!/bin/bash
quote_args() {
local quoted_args=""
escape_args() {
local eargs=""
for arg in "${@}"; do
quoted_args="${quoted_args} \"${arg}\""
for arg in "$@"; do
printf -v eargs '%s%q ' "$eargs" "$arg"
done
echo "${quoted_args}"
echo "${eargs%?}"
}
find_regex_in_args() {
@ -201,7 +201,7 @@ qvm-run --nogui -q $UPDATEVM 'rm -rf /var/lib/qubes/dom0-updates/etc' || exit 1
tar c /var/lib/rpm /etc/yum.repos.d /etc/yum.conf 2>/dev/null | \
qvm-run --nogui -q --pass-io "$UPDATEVM" 'LC_MESSAGES=C tar x -C /var/lib/qubes/dom0-updates 2>&1 | grep -v -E "s in the future"'
qvm-run $QVMRUN_OPTS --pass-io $UPDATEVM "script --quiet --return --command '/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui $(quote_args "${ALL_OPTS[@]}")' /dev/null" < /dev/null
qvm-run $QVMRUN_OPTS --pass-io $UPDATEVM "script --quiet --return --command '/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui $(escape_args "${ALL_OPTS[@]}")' /dev/null" < /dev/null
RETCODE=$?
if [ "$CHECK_ONLY" == "1" ]; then
exit $RETCODE

Loading…
Cancel
Save