Hubert Chan schrieb am Sat 05. Mar, 11:36 (-0500) : > Hi J�rg, > > You tagged bug #298141 with the patch tag, but I don't see any patch > attached to your message. I think it got eaten (or maybe you just > forgot to attach it). Can you re-send?
Oh sorry, I'm a little bit absent-minded the last days.
Joerg.
--
Nichts ist so langweilig, wie die Wiederholung seinerselbst.
(Marcel Reich-Ranicki)
--- /tmp/usr/bin/mount.crypt 2005-03-01 22:45:49.000000000 +0100
+++ /sbin/mount.crypt 2005-03-05 13:47:23.000000000 +0100
@@ -45,6 +45,11 @@
exit 1
}
+DEVICE=$1
+MOUNT_POINT=$2
+
+shift 2
+
while :;
do case "$1" in
-h | "-?" )
@@ -62,17 +67,17 @@
shift
done
-if [ -z "$1" ]; then
+if [ -z "$DEVICE" ]; then
echo "${0##*/}: device to mount not specified" >&2
fi
-if [ ! -f "$1" ] && [ ! -b "$1" ]; then
- echo "${0##*/}: $1 is not a block device or file" >&2
+if [ ! -f "$DEVICE" ] && [ ! -b "$DEVICE" ]; then
+ echo "${0##*/}: $DEVICE is not a block device or file" >&2
exit 1
fi
-if [ ! -d "$2" ]; then
- echo "${0##*/}: $2 is not a directory" >&2
+if [ ! -d "$MOUNT_POINT" ]; then
+ echo "${0##*/}: $MOUNT_POINT is not a directory" >&2
exit 1
fi
@@ -83,8 +88,8 @@
MOUNTOPTIONS=""
IFS=","
for opt in $OPTIONS; do
- KEY=`echo $opt | awk -F = '{ print $1 }'`
- VAL=`echo $opt | awk -F = '{ print $2 }'`
+ KEY=${opt%=*}
+ VAL=${opt#*=}
case $KEY in
# FIXME: use cipher instead of encryption to avoid conflicting
# with mount's built-in (cryptoloop) encryption argument.
@@ -112,29 +117,27 @@
done
if [ x"${LOOP}" = xtrue ]; then
- DEVICE=`_losetup $1`
-else
- DEVICE=$1
+ DEVICE=`_losetup $DEVICE`
fi
# if loop device, make device mapper name based on file pointed to
-if [ `echo $1 | grep '^/dev/loop'` ]; then
- DMDEVICE=`$LOSETUP $1 | egrep '(.+)' | awk '{print $3}' | sed 's/(//' |
sed 's/)//'`
-fi
-# if not a loop device or previous command fails
-if [ -z $DMDEVICE ]; then
- DMDEVICE=$1
-fi
+case "$DEVICE" in
+ /dev/loop*)
+ DMDEVICE=`$LOSETUP $DEVICE | egrep '(.+)' | awk '{print $3}' | sed
's/(//; s/)//'`
+esac
+# if not a loop device or previous command fails use $DEVICE
+: ${DMDEVICE:=$DEVICE}
+
# FIXME: blind replacement of / with _ may be a bad idea.
DMDEVICE=`echo $DMDEVICE | sed 's/\//_/g'`
CIPHEROPT="aes"
if [ -n "$CIPHER" ]; then
- CIPHEROPT="-c $CIPHER"
+ CIPHEROPT="$CIPHER"
fi
HASHOPT="ripemd160"
if [ -n "$HASH" ]; then
- HASHOPT="-h $HASH"
+ HASHOPT="$HASH"
fi
KEYSIZEOPT="256"
@@ -150,8 +153,8 @@
fi
if [ -z "$MOUNTOPTIONS" ]; then
- # $2 might not exist as mount can try to read it from /etc/fstab
- $MOUNT /dev/mapper/$DMDEVICE $2
+ # $MOUNT_POINT might not exist as mount can try to read it from
/etc/fstab
+ $MOUNT /dev/mapper/$DMDEVICE $MOUNT_POINT
if [ $? != 0 ]; then
echo "${0##*/}: error mounting $DMDEVICE" >&2
$CRYPTSETUP remove $DMDEVICE
@@ -159,7 +162,7 @@
exit 1
fi
else
- $MOUNT -o $MOUNTOPTIONS /dev/mapper/$DMDEVICE $2
+ $MOUNT -o $MOUNTOPTIONS /dev/mapper/$DMDEVICE $MOUNT_POINT
if [ $? != 0 ]; then
echo "${0##*/}: error mounting $DMDEVICE" >&2
$CRYPTSETUP remove $DMDEVICE
signature.asc
Description: Digital signature

