dest="${source}"
fi
- if echo ${dest} | grep -qe "^/\+$\|^/\+live\(/.*\)\?$"
+ if trim_path ${source} | grep -qe "^\(.*/\)\?\.\.\?\(/.*\)\?$"
then
- # mounting on / or /live could cause trouble
- log_warning_msg "Skipping unsafe custom mount on ${dest}"
+ log_warning_msg "Skipping unsafe custom mount with source ${source}: the source is a relative or absolute path w.r.t. the persistent media root and cannot use \".\" or \"..\""
+ continue
+ fi
+
+ if trim_path ${dest} | grep -q -e "^/$" -e "^/live\(/.*\)\?$" -e "^/\(.*/\)\?\.\.\?\(/.*\)\?$"
+ then
+ log_warning_msg "Skipping unsafe custom mount with desination ${dest}: the destination must be an absolute path using neither \".\" nor \"..\", and cannot be /live (or any sub-directory therein) or / (for the latter, use ${root_overlay_label}-type persistence instead)"
continue
fi
esac
done
- # FIXME: handle case: we already have /a/b in
- # $bindings added from current $device, but
- # now we find /a -- /a should replace /a/b in
- # $bindings.
-
- # FIXME: handle case: we have /a in $bindings
- # from current $device, now we find /a/b, so
- # we skip /a/b
-
# ensure that no multiple-/ occur in paths
- local full_source="$(echo ${backing}/${source}/ | sed -e 's|/\+|/|g')"
- local full_dest="$(echo ${rootmnt}/${dest}/ | sed -e 's|/\+|/|g')"
+ local full_source="$(trim_path ${backing}/${source})"
+ local full_dest="$(trim_path ${rootmnt}/${dest})"
device_used="yes"
if echo ${options} | grep -qe "\<linkfiles\>";
then
# FIXME: this should really be handled by
# live-config since we don't know for sure
# which uid a certain user has until then
- if echo ${dest} | grep -qe "^${rootmnt}/*home/\+[^/]\+"
+ if trim_path ${dest} | grep -qe "^${rootmnt}/*home/[^/]\+"
then
path="/"
for dir in $(echo ${dest} | sed -e 's|/\+| |g')
if [ ! -r "${include_list}" ]
then
echo "# home-rw backwards compatibility:
-. /home" > "${include_list}"
+/ /home" > "${include_list}"
fi
}