Proper argument escaping for special characters.
Fixes side note of QubesOS/qubes-issues#5562
This commit is contained in:
parent
f4f5731bdc
commit
c600b1b39c
@ -1,13 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
quote_args() {
|
escape_args() {
|
||||||
local quoted_args=""
|
local eargs=""
|
||||||
|
|
||||||
for arg in "${@}"; do
|
for arg in "$@"; do
|
||||||
quoted_args="${quoted_args} \"${arg}\""
|
printf -v eargs '%s%q ' "$eargs" "$arg"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "${quoted_args}"
|
echo "${eargs%?}"
|
||||||
}
|
}
|
||||||
|
|
||||||
find_regex_in_args() {
|
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 | \
|
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 --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=$?
|
RETCODE=$?
|
||||||
if [ "$CHECK_ONLY" == "1" ]; then
|
if [ "$CHECK_ONLY" == "1" ]; then
|
||||||
exit $RETCODE
|
exit $RETCODE
|
||||||
|
Loading…
Reference in New Issue
Block a user