Skip to content

Commit

Permalink
Make two custom mounts with nested source directories illegal.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tails developers authored and daniel-baumann committed Apr 5, 2012
1 parent 2d12920 commit 22216d1
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions scripts/live-helpers
Expand Up @@ -1342,7 +1342,24 @@ get_custom_mounts ()

# After all mounts are considered we add symlinks so they
# won't be hidden by some mount.
[ -e "${links}" ] && sort -k3 -sbu ${links} >> ${custom_mounts} && rm ${links}
[ -e "${links}" ] && cat ${links} >> ${custom_mounts} && rm ${links}

# We need to make sure that no two custom mounts have the same sources
# or are nested; if that is the case, too much weird stuff can happen.
local prev_source="impossible source" # first iteration must not match
local prev_dest=""
# This sort will ensure that a source /a comes right before a source
# /a/b so we only need to look at the previous source
sort -k2 -b ${custom_mounts} |
while read device source dest options
do
if echo ${source} | grep -qe "^${prev_source}\(/.*\)\?$"
then
panic "Two persistent mounts have the same or nested sources: ${source} on ${dest}, and ${prev_source} on ${prev_dest}"
fi
prev_source=${source}
prev_dest=${dest}
done
}

activate_custom_mounts ()
Expand All @@ -1356,7 +1373,7 @@ activate_custom_mounts ()
local opt_union=""
for opt in $(echo ${options} | tr ',' ' ');
do
case "${opt}" in
case "${opt}" in
linkfiles)
opt_linkfiles="yes"
;;
Expand Down

0 comments on commit 22216d1

Please sign in to comment.