mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-10-05 16:46:35 -05:00
Merge commit from fork
Use the private file created by mktemp for embedded package data rather than reopening a predictable path. Quote the path and check failures when creating or placing the package. Reported-by: curious-rabbit (https://github.com/curious-rabbit) Fixed-by: curious-rabbit (https://github.com/curious-rabbit)
This commit is contained in:
1 parent
a15c996f4f
commit
dea8fb0dc0
2 files changed
+30
-18
No files matched your search
@@ -12,8 +12,9 @@
|
||||
|
||||
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/X11
|
||||
|
||||
PACKAGE_DIR=$(dirname $(mktemp))
|
||||
PACKAGE=$PACKAGE_DIR/$PACKAGE_NAME
|
||||
# Write the package to a private temporary file so a planted path cannot be used
|
||||
PACKAGE=$(mktemp) || { echo "Error: failed to create a temporary file" >&2; exit 1; }
|
||||
PACKAGE_DIR=$(dirname "$PACKAGE")
|
||||
umask 022
|
||||
|
||||
OBSOLETE_DONATION_BANK_FILES="/usr/share/doc/veracrypt/HTML/en/Donation_Bank.html /usr/share/doc/veracrypt/HTML/en/bank_30x30.png /usr/share/doc/veracrypt/HTML/ru/Donation_Bank.html /usr/share/doc/veracrypt/HTML/ru/bank_30x30.png /usr/share/doc/veracrypt/HTML/zh-cn/Donation_Bank.html /usr/share/doc/veracrypt/HTML/zh-cn/bank_30x30.png"
|
||||
@@ -137,7 +138,7 @@ update_system_caches()
|
||||
|
||||
# License extraction
|
||||
|
||||
trap 'rm -f $LICENSE $PACKAGE; exit 1' HUP INT QUIT TERM
|
||||
trap 'rm -f "$LICENSE" "$PACKAGE"; exit 1' HUP INT QUIT TERM
|
||||
LICENSE=$(mktemp)
|
||||
|
||||
cat >$LICENSE <<_LICENSE_END
|
||||
@@ -1040,7 +1041,7 @@ fi
|
||||
|
||||
[ $GUI -eq 0 ] && echo
|
||||
|
||||
if ! tail -n +$PACKAGE_START "$0" >$PACKAGE
|
||||
if ! tail -n +$PACKAGE_START "$0" > "$PACKAGE"
|
||||
then
|
||||
show_exit_message "Error: Extraction to $PACKAGE failed"
|
||||
exit 1
|
||||
@@ -1088,21 +1089,21 @@ then
|
||||
|
||||
if [ $XTERM -eq 1 ]
|
||||
then
|
||||
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS \"$PACKAGE\" && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f \"$PACKAGE\"; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
else
|
||||
if [ $GTERM -eq 1 ]
|
||||
then
|
||||
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS \"$PACKAGE\" && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f \"$PACKAGE\"; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
else
|
||||
if [ $KTERM -eq 1 ]
|
||||
then
|
||||
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS \"$PACKAGE\" && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f \"$PACKAGE\"; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo 'Installing package...'
|
||||
$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1
|
||||
$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS "$PACKAGE" && INSTALLED=1
|
||||
|
||||
if [ $INSTALLED -eq 1 ]
|
||||
then
|
||||
@@ -1112,13 +1113,18 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f $PACKAGE
|
||||
rm -f "$PACKAGE"
|
||||
if [ $INSTALLED -ne 1 ]
|
||||
then
|
||||
show_exit_message 'Error: VeraCrypt installation failed'
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if ! mv -f "$PACKAGE" "$PACKAGE_DIR/$PACKAGE_NAME" || [ ! -f "$PACKAGE_DIR/$PACKAGE_NAME" ]
|
||||
then
|
||||
show_exit_message "Error: failed to place package at '$PACKAGE_DIR/$PACKAGE_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
show_exit_message "Installation package '$PACKAGE_NAME' extracted and placed in '$PACKAGE_DIR'"
|
||||
fi
|
||||
|
||||
|
||||
@@ -12,8 +12,9 @@
|
||||
|
||||
PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/X11
|
||||
|
||||
PACKAGE_DIR=$(dirname $(mktemp))
|
||||
PACKAGE=$PACKAGE_DIR/$PACKAGE_NAME
|
||||
# Write the package to a private temporary file so a planted path cannot be used
|
||||
PACKAGE=$(mktemp) || { echo "Error: failed to create a temporary file" >&2; exit 1; }
|
||||
PACKAGE_DIR=$(dirname "$PACKAGE")
|
||||
umask 022
|
||||
|
||||
OBSOLETE_DONATION_BANK_FILES="/usr/share/doc/veracrypt/HTML/en/Donation_Bank.html /usr/share/doc/veracrypt/HTML/en/bank_30x30.png /usr/share/doc/veracrypt/HTML/ru/Donation_Bank.html /usr/share/doc/veracrypt/HTML/ru/bank_30x30.png /usr/share/doc/veracrypt/HTML/zh-cn/Donation_Bank.html /usr/share/doc/veracrypt/HTML/zh-cn/bank_30x30.png"
|
||||
@@ -141,7 +142,7 @@ update_system_caches()
|
||||
|
||||
# License extraction
|
||||
|
||||
trap 'rm -f $LICENSE $PACKAGE; exit 1' HUP INT QUIT TERM
|
||||
trap 'rm -f "$LICENSE" "$PACKAGE"; exit 1' HUP INT QUIT TERM
|
||||
LICENSE=$(mktemp)
|
||||
|
||||
cat >$LICENSE <<_LICENSE_END
|
||||
@@ -1044,7 +1045,7 @@ fi
|
||||
|
||||
[ $GUI -eq 0 ] && echo
|
||||
|
||||
if ! tail -n +$PACKAGE_START "$0" >$PACKAGE
|
||||
if ! tail -n +$PACKAGE_START "$0" > "$PACKAGE"
|
||||
then
|
||||
show_exit_message "Error: Extraction to $PACKAGE failed"
|
||||
exit 1
|
||||
@@ -1092,21 +1093,21 @@ then
|
||||
|
||||
if [ $XTERM -eq 1 ]
|
||||
then
|
||||
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
exec xterm -T 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS \"$PACKAGE\" && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f \"$PACKAGE\"; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
else
|
||||
if [ $GTERM -eq 1 ]
|
||||
then
|
||||
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
exec gnome-terminal --title='VeraCrypt Setup' -- sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS \"$PACKAGE\" && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f \"$PACKAGE\"; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
else
|
||||
if [ $KTERM -eq 1 ]
|
||||
then
|
||||
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f $PACKAGE; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
exec konsole --qwindowtitle 'VeraCrypt Setup' -e sh -c "echo Installing package...; $SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS \"$PACKAGE\" && $SUDO rm -f $OBSOLETE_DONATION_BANK_FILES $OBSOLETE_SYMBOLIC_ICON_FILES; rm -f \"$PACKAGE\"; $CACHE_UPDATE_COMMAND; echo; echo Press Enter to exit...; read A"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo 'Installing package...'
|
||||
$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS $PACKAGE && INSTALLED=1
|
||||
$SUDO $PACKAGE_INSTALLER $PACKAGE_INSTALLER_OPTS "$PACKAGE" && INSTALLED=1
|
||||
|
||||
if [ $INSTALLED -eq 1 ]
|
||||
then
|
||||
@@ -1116,13 +1117,18 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f $PACKAGE
|
||||
rm -f "$PACKAGE"
|
||||
if [ $INSTALLED -ne 1 ]
|
||||
then
|
||||
show_exit_message 'Error: VeraCrypt installation failed'
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if ! mv -f "$PACKAGE" "$PACKAGE_DIR/$PACKAGE_NAME" || [ ! -f "$PACKAGE_DIR/$PACKAGE_NAME" ]
|
||||
then
|
||||
show_exit_message "Error: failed to place package at '$PACKAGE_DIR/$PACKAGE_NAME'"
|
||||
exit 1
|
||||
fi
|
||||
show_exit_message "Installation package '$PACKAGE_NAME' extracted and placed in '$PACKAGE_DIR'"
|
||||
fi
|
||||
|
||||
|
||||
Reference in new issue
Block a user