|
Lines 73-111
check_fstab "$HAL_PROP_BLOCK_DEVICE" ||
Link Here
|
| 73 |
# pass e.g. umask=0600,suid,dev or umask=`/bin/evil` |
73 |
# pass e.g. umask=0600,suid,dev or umask=`/bin/evil` |
| 74 |
|
74 |
|
| 75 |
read GIVEN_MOUNTPOINT |
75 |
read GIVEN_MOUNTPOINT |
| 76 |
GIVEN_MOUNTPOINT=${GIVEN_MOUNTPOINT//[^a-zA-Z0-9_+-]/@} |
|
|
| 77 |
read GIVEN_MOUNTTYPE |
76 |
read GIVEN_MOUNTTYPE |
| 78 |
GIVEN_MOUNTTYPE=${GIVEN_MOUNTTYPE//[^a-zA-Z0-9_=]/_} |
77 |
GIVEN_MOUNTTYPE=${GIVEN_MOUNTTYPE//[^a-zA-Z0-9_=]/_} |
| 79 |
read GIVEN_MOUNTOPTIONS |
78 |
read GIVEN_MOUNTOPTIONS |
| 80 |
GIVEN_MOUNTOPTIONS=${GIVEN_MOUNTOPTIONS//[^a-zA-Z0-9_=[:space:]]/_} |
79 |
GIVEN_MOUNTOPTIONS=${GIVEN_MOUNTOPTIONS//[^a-zA-Z0-9_=[:space:]]/_} |
| 81 |
|
80 |
|
| 82 |
# if no mountpoint, get mountpoint from label |
81 |
if [ -z "$GIVEN_MOUNTPOINT" ]; then |
| 83 |
if [ "$GIVEN_MOUNTPOINT" == "" ]; then |
82 |
if [ -n "$HAL_PROP_VOLUME_LABEL" ]; then |
| 84 |
case "$HAL_PROP_VOLUME_LABEL" in |
83 |
GIVEN_MOUNTPOINT="$HAL_PROP_VOLUME_LABEL" |
| 85 |
*[!A-Za-z0-9_\-\+:]*) |
84 |
elif [ -n "$HAL_PROP_STORAGE_DRIVE_TYPE" ]; then |
| 86 |
;; |
85 |
GIVEN_MOUNTPOINT="$HAL_PROP_STORAGE_DRIVE_TYPE" |
| 87 |
*) |
|
|
| 88 |
GIVEN_MOUNTPOINT="$HAL_PROP_VOLUME_LABEL" |
| 89 |
esac |
| 90 |
fi |
| 91 |
|
| 92 |
# if no mountpoint is given, use default name |
| 93 |
if [ "$GIVEN_MOUNTPOINT" == "" ]; then |
| 94 |
if [ "$HAL_PROP_STORAGE_MEDIA_CHECK_ENABLED" == "false" ]; then |
| 95 |
GIVEN_MOUNTPOINT="$HAL_PROP_STORAGE_DRIVE_TYPE" |
| 96 |
else |
86 |
else |
| 97 |
GIVEN_MOUNTPOINT="disk" |
87 |
GIVEN_MOUNTPOINT="disk" |
| 98 |
fi |
88 |
fi |
| 99 |
fi |
89 |
fi |
| 100 |
|
90 |
|
| 101 |
# we've replaced invalid characters in requested mountpoint with '@' |
91 |
# sanitize |
| 102 |
case "$GIVEN_MOUNTPOINT" in |
92 |
GIVEN_MOUNTPOINT=${GIVEN_MOUNTPOINT//[^a-zA-Z0-9_+-]/_} |
| 103 |
*@*) |
93 |
GIVEN_MOUNTPOINT=${GIVEN_MOUNTPOINT/./_} |
| 104 |
echo "org.freedesktop.Hal.Device.Volume.InvalidMountpoint" >&2 |
94 |
|
| 105 |
echo "The mountpoint is invalid." >&2 |
|
|
| 106 |
exit 1 |
| 107 |
;; |
| 108 |
esac |
| 109 |
MOUNTPOINT="$GIVEN_MOUNTPOINT" |
95 |
MOUNTPOINT="$GIVEN_MOUNTPOINT" |
| 110 |
|
96 |
|
| 111 |
# pass only whitelisted types |
97 |
# pass only whitelisted types |