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
done
# 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
}