Proper argument escaping for special characters.

Fixes side note of QubesOS/qubes-issues#5562
pull/55/head mm_c600b1b3
3hhh 4 years ago
parent f4f5731bdc
commit c600b1b39c
No known key found for this signature in database
GPG Key ID: EB03A691DB2F0833

@ -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 /etc/dnf/dnf.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