From 2026ce02b2cb18461b4f553106a2306b929a205f Mon Sep 17 00:00:00 2001 From: Tails developers Date: Fri, 7 Dec 2012 22:30:27 +0100 Subject: [PATCH] Fixing persistence-media option when no devices are attached. Earlier, if it was set to e.g. 'removable-usb' and no USB storage was connected, $whitelistdev would be empty, which is interpreted like all devices are ok by the rest of the code. --- scripts/boot/9990-overlay.sh | 51 ++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/scripts/boot/9990-overlay.sh b/scripts/boot/9990-overlay.sh index b586a47..4282400 100755 --- a/scripts/boot/9990-overlay.sh +++ b/scripts/boot/9990-overlay.sh @@ -189,19 +189,23 @@ setup_unionfs () done fi - case "${PERSISTENCE_MEDIA}" in - removable) - whitelistdev="$(removable_dev)" - ;; - - removable-usb) - whitelistdev="$(removable_usb_dev)" - ;; + local whitelistdev="" + if [ -n "${PERSISTENCE_MEDIA}" ] + then + case "${PERSISTENCE_MEDIA}" in + removable) + whitelistdev="$(removable_dev)" + ;; - *) - whitelistdev="" - ;; - esac + removable-usb) + whitelistdev="$(removable_usb_dev)" + ;; + esac + if [ -z "${whitelistdev}" ] + then + whitelistdev="ignore_all_devices" + fi + fi if is_in_comma_sep_list overlay ${PERSISTENCE_METHOD} then @@ -209,17 +213,20 @@ setup_unionfs () fi local overlay_devices="" - for media in $(find_persistence_media "${overlays}" "${whitelistdev}") - do - media="$(echo ${media} | tr ":" " ")" + if [ "${whitelistdev}" != "ignore_all_devices" ] + then + for media in $(find_persistence_media "${overlays}" "${whitelistdev}") + do + media="$(echo ${media} | tr ":" " ")" - case ${media} in - ${custom_overlay_label}=*) - device="${media#*=}" - overlay_devices="${overlay_devices} ${device}" - ;; - esac - done + case ${media} in + ${custom_overlay_label}=*) + device="${media#*=}" + overlay_devices="${overlay_devices} ${device}" + ;; + esac + done + fi elif [ -n "${NFS_COW}" ] && [ -z "${NOPERSISTENCE}" ] then # check if there are any nfs options