tfix is_valid_tomb check for already mounted tombs - tomb - the crypto undertaker HTML git clone git://parazyd.org/tomb.git DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit 14cba81f6e97d1a1fa8ffcf2d34fc96d13d79d63 DIR parent db976a521029c5991d8316f6d0572e5d6e9b482e HTML Author: Jaromil <jaromil@dyne.org> Date: Mon, 26 Dec 2016 20:40:23 +0100 fix is_valid_tomb check for already mounted tombs also added some more verbosity on debug Diffstat: M tomb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) --- DIR diff --git a/tomb b/tomb t@@ -507,20 +507,27 @@ is_valid_tomb() { _warning "Tomb file is not writable: ::1 tomb file::" $1 _fail=1 } + _verbose "tomb file is readable" + [[ ! -f "$1" ]] && { _warning "Tomb file is not a regular file: ::1 tomb file::" $1 _fail=1 } + _verbose "tomb file is a regular file" + [[ ! -s "$1" ]] && { _warning "Tomb file is empty (zero length): ::1 tomb file::" $1 _fail=1 } + _verbose "tomb file is not empty" _uid="`zstat +uid $1`" [[ "$_uid" = "$UID" ]] || { _user="`zstat -s +uid $1`" _warning "Tomb file is owned by another user: ::1 tomb owner::" $_user } + _verbose "tomb is not owned by another user" + [[ $_fail = 1 ]] && { _failure "Tomb command failed: ::1 command name::" $subcommand } t@@ -536,9 +543,12 @@ is_valid_tomb() { _plot $1 # Set TOMB{PATH,DIR,FILE,NAME} # Tomb already mounted (or we cannot alter it) - [[ "`mount -l`" -regex-match "${TOMBFILE}.*\[$TOMBNAME\]$" ]] && { + [[ "`mount -l | + awk -vtomb="[$TOMBNAME]" ' +/^\/dev\/mapper\/tomb/ { if($7==tomb) print $1 }'`" = "" ]] || { _failure "Tomb is currently in use: ::1 tomb name::" $TOMBNAME } + _verbose "tomb file is not currently in use" _message "Valid tomb file found: ::1 tomb path::" $TOMBPATH