Changeset 14160


Ignorieren:
Zeitstempel:
16.03.2017 22:36:43 (vor 5 Monaten)
Autor:
er13
Nachricht:

FreetzMount:

  • quote mnt_name, mnt_path all over the code
  • an attempt to address the issue reported in #2384
  • refs #2384
Datei:
1 bearbeitet

Legende:

Unverändert
Hinzugefügt
Entfernt
  • trunk/make/mod/files/root/usr/lib/libmodmount.sh

    r13023 r14160  
    4646    fi 
    4747 
    48     echo $mnt_name 
     48    echo "$mnt_name" 
    4949} 
    5050 
     
    6060mount_fs() { 
    6161    local dev_node=$1                                                         # device node 
    62     local mnt_path=$2                                                         # mount path 
     62    local mnt_path="$2"                                                       # mount path 
    6363    [ $# -ge 3 ] && local rw_mode=$3 || local rw_mode=rw                      # read/write mode 
    6464    [ $# -ge 4 ] && local ftp_uid=$4 || local ftp_uid=0                       # ftp user id 
     
    6969    case $fs_type in 
    7070        vfat) 
    71             mount -t vfat -o $rw_mode,noatime,shortname=winnt,uid=$ftp_uid,gid=$ftp_gid,fmask=0000,dmask=0000 $dev_node $mnt_path 
     71            mount -t vfat -o $rw_mode,noatime,shortname=winnt,uid=$ftp_uid,gid=$ftp_gid,fmask=0000,dmask=0000 $dev_node "$mnt_path" 
    7272            err_mo=$? 
    7373            ;; 
    7474        ext2|ext3|ext4|reiserfs) 
    75             mount -t $fs_type $dev_node $mnt_path -o noatime,nodiratime,rw,async 
     75            mount -t $fs_type $dev_node "$mnt_path" -o noatime,nodiratime,rw,async 
    7676            err_mo=$? 
    7777            ;; 
    7878        hfs|hfsplus) 
    79             mount -t $fs_type $dev_node $mnt_path 
     79            mount -t $fs_type $dev_node "$mnt_path" 
    8080            err_mo=$? 
    8181            ;; 
     
    8484            ;; 
    8585        ntfs) 
    86             [ -x "$(which ntfs-3g)" ] && { ntfs-3g $dev_node $mnt_path -o force ; err_mo=$? ; } || err_mo=111 
     86            [ -x "$(which ntfs-3g)" ] && { ntfs-3g $dev_node "$mnt_path" -o force ; err_mo=$? ; } || err_mo=111 
    8787            ;; 
    8888        swap) 
     
    9191            ;; 
    9292        *)                                                                    # fs type unknown 
    93             mount $dev_node $mnt_path 
     93            mount $dev_node "$mnt_path" 
    9494            err_mo=$? 
    9595            ;; 
     
    120120 
    121121    mnt_name=$(find_mnt_name $mnt_main_dev $mnt_part_num) 
    122     mnt_path=$FTPDIR/$mnt_name 
     122    mnt_path="$FTPDIR/$mnt_name" 
    123123    log_freetz notice "Mounting device $mnt_dev at $mnt_path ... " 
    124     if [ ! -d $mnt_path ]; then 
    125         mkdir -p $mnt_path 
     124    if [ ! -d "$mnt_path" ]; then 
     125        mkdir -p "$mnt_path" 
    126126    else 
    127127        log_freetz notice "$mnt_path already exists, after mounting $mnt_dev its contents (if any) will become invisible ... " 
     
    132132    umask 0 
    133133 
    134     fs_type=$(mount_fs $mnt_dev $mnt_path $mnt_rw $FTPUID $FTPGID)             # FREETZ mount 
     134    fs_type=$(mount_fs $mnt_dev "$mnt_path" $mnt_rw $FTPUID $FTPGID)           # FREETZ mount 
    135135    local err_fs_mount=$? 
    136136 
    137137    # update device map, do it before notifying other components about changes 
    138138    # TODO: it should be enough to do it on successful mount only, i.e. if err_fs_mount==0 
    139     if grep -q $mnt_path /proc/mounts; then 
     139    if grep -q "$mnt_path" /proc/mounts; then 
    140140        if [ -f "$1" -o -f "/proc/bus/usb/$1" -o -f "/dev/bus/usb/$1" ]; then 
    141141            grep -v "^$1=$2:" $DEVMAP > /var/dev-$$.map 
     
    163163 
    164164        # freetz extras 
    165         /etc/init.d/rc.swap autostart $mnt_path                                                                 # swap 
     165        /etc/init.d/rc.swap autostart "$mnt_path"                                                               # swap 
    166166        [ "$MOD_STOR_AUTORUNEND" == "yes" -a -x $autorun ] && $autorun &                                        # autorun 
    167         [ -r /mod/etc/external.pkg ] && /etc/init.d/rc.external start $mnt_path &                               # external 
    168  
    169         [ -x $tr069starter ] && $tr069starter $mnt_name                                                         # tr069 
     167        [ -r /mod/etc/external.pkg ] && /etc/init.d/rc.external start "$mnt_path" &                             # external 
     168 
     169        [ -x $tr069starter ] && $tr069starter "$mnt_name"                                                       # tr069 
    170170        [ -x $samba_control ] && $samba_control reconfig                                                        # SAMBA reconfiguration 
    171171        [ -p $tammnt ] && echo "m$mnt_path" > $tammnt                                                           # tam 
    172172 
    173         rm -f /var/media/NEW_LINK && ln -fs $mnt_path /var/media/NEW_LINK                                       # mark last mounted partition 
     173        rm -f /var/media/NEW_LINK && ln -fs "$mnt_path" /var/media/NEW_LINK                                     # mark last mounted partition 
    174174 
    175175        # notify other components that a new partition has been mounted 
     
    190190    # mount failed 
    191191    local mnt_failure=0 
    192     rmdir $mnt_path 
     192    rmdir "$mnt_path" 
    193193    case "$fs_type" in 
    194194        "crypto_LUKS") 
     
    253253# 
    254254do_umount_locked() { 
    255     local mnt_path=$1                                                         # /var/media/ftp/uStorMN 
     255    local mnt_path="$1"                                                       # /var/media/ftp/uStorMN 
    256256    local mnt_name="${mnt_path##*/}"                                          # uStorMN or LABEL 
    257257    local mnt_dev=$(grep -m 1 "$mnt_path" /proc/mounts | sed 's/ .*//')       # /dev/sdXY 
     
    266266    # freetz extras 
    267267    [ "$MOD_STOR_AUTORUNEND" == "yes" -a -x $autoend ] && $autoend            # autoend 
    268     [ -r /mod/etc/external.pkg ] && /etc/init.d/rc.external stop $mnt_path    # external 
    269     /etc/init.d/rc.swap autostop $mnt_path                                    # swap 
     268    [ -r /mod/etc/external.pkg ] && /etc/init.d/rc.external stop "$mnt_path"  # external 
     269    /etc/init.d/rc.swap autostop "$mnt_path"                                  # swap 
    270270 
    271271    # notify webdav & TAM unconditionally, i.e. before both "mount -o move" & the actual unmount (this is what AVM does) 
     
    275275    # notify other components before the actual unmount, this is NOT exactly the same what AVM does but quite close to it 
    276276    # AVM does it after "mount -o move" and before the actual unmount 
    277     [ -x $fritznasdb_control ] && $fritznasdb_control lost_partition $mnt_path                           # fritznasdb 
     277    [ -x $fritznasdb_control ] && $fritznasdb_control lost_partition "$mnt_path"                         # fritznasdb 
    278278    [ -e /lib/libmediasrv.so ] && msgsend upnpd plugin notify libmediasrv.so "lost_partition:$mnt_path"  # mediasrv 
    279279    [ -e /lib/libcloudcds.so ] && msgsend upnpd plugin notify libcloudcds.so "lost_partition:$mnt_path"  # webdav based media server 
     
    288288    fi 
    289289 
    290     umount $mnt_path > /dev/null 2>&1                                         # umount 
     290    umount "$mnt_path" > /dev/null 2>&1                                       # umount 
    291291 
    292292    local smbd_needs_start=0 
     
    296296                smbd_needs_start=1 
    297297                $rcsmbd stop 
    298                 umount $mnt_path > /dev/null 2>&1 
     298                umount "$mnt_path" > /dev/null 2>&1 
    299299            fi 
    300300        fi 
     
    307307                ftpd_needs_start=1 
    308308                $rcftpd stop 
    309                 umount $mnt_path > /dev/null 2>&1 
     309                umount "$mnt_path" > /dev/null 2>&1 
    310310            fi 
    311311        fi 
     
    317317            if grep -q " $mnt_path " /proc/mounts; then                # still mounted? 
    318318                for pid in $(ps | sed 's/^ *//g;s/ .*//g'); do 
    319                     umount_files="$(realpath /proc/$pid/cwd /proc/$pid/fd/* 2>/dev/null | grep $mnt_path)" 
     319                    umount_files="$(realpath /proc/$pid/cwd /proc/$pid/fd/* 2>/dev/null | grep "$mnt_path")" 
    320320                    if [ -n "$umount_files" ]; then 
    321321                        umount_blocker="$mnt_path ($mnt_dev) - sending SIG$SIGN to [$pid] $(realpath /proc/$pid/exe):" 
     
    327327                done 
    328328                sync 
    329                 umount $mnt_path > /dev/null 2>&1 
     329                umount "$mnt_path" > /dev/null 2>&1 
    330330            fi 
    331331        done 
     
    335335        log_freetz notice "$mnt_path ($mnt_dev) - mounting read-only" 
    336336        mount "$mnt_path" -o remount,ro 
    337         umount $mnt_path > /dev/null 2>&1 
     337        umount "$mnt_path" > /dev/null 2>&1 
    338338    fi 
    339339 
     
    341341    if grep -q " $mnt_path " /proc/mounts; then                               # still mounted? force unmount 
    342342        log_freetz notice "$mnt_path ($mnt_dev) - forcing unmount" 
    343         umount -f $mnt_path 
     343        umount -f "$mnt_path" 
    344344        err_code=$? 
    345345    fi 
     
    347347    if grep -q " $mnt_path " /proc/mounts; then                               # umount failed 
    348348        for pid in $(ps | sed 's/^ *//g;s/ .*//g'); do                    # log blocker 
    349             umount_files="$(realpath /proc/$pid/cwd /proc/$pid/fd/* 2>/dev/null | grep $mnt_path)" 
     349            umount_files="$(realpath /proc/$pid/cwd /proc/$pid/fd/* 2>/dev/null | grep "$mnt_path")" 
    350350            if [ -n "$umount_files" ]; then 
    351351                umount_blocker="$mnt_path ($mnt_dev) - still used by $(realpath /proc/$pid/exe):" 
     
    363363        mv -f /var/dev-$$.map $DEVMAP 
    364364 
    365         rmdir $mnt_path 
     365        rmdir "$mnt_path" 
    366366        [ -d "$mnt_path" ] && log_freetz err "Directory $mnt_path could not be removed" 
    367367 
     
    373373        $rcsmbd start 
    374374    else 
    375         [ -x /etc/samba_control ] && /etc/samba_control reconfig $mnt_path 
     375        [ -x /etc/samba_control ] && /etc/samba_control reconfig "$mnt_path" 
    376376    fi 
    377377    [ $ftpd_needs_start -eq 1 ] && $rcftpd start                              # start ftpd 
     
    399399    if [ "${1:1:3}" == "dev" ] 
    400400    then                                                                      # old parameter style 
    401         local mnt_path=$2                                                 # /var/media/ftp/uStorMN 
     401        local mnt_path="$2"                                               # /var/media/ftp/uStorMN 
    402402    else                                                                      # new parameter style 
    403         local mnt_path=$1                                                 # /var/media/ftp/uStorMN 
     403        local mnt_path="$1"                                               # /var/media/ftp/uStorMN 
    404404    fi 
    405405    local err_code=0 
     
    520520    set $MOUNT 
    521521    local mnt_dev=$1                                                          # /dev/sda1 
    522     local mnt_path=$2                                                         # /var/media/ftp/uStorXY or LABEL 
     522    local mnt_path="$2"                                                       # /var/media/ftp/uStorXY or LABEL 
    523523    local mnt_main_dev=${mnt_dev:5:3}                                         # sda 
    524524    local mserver_start="/sbin/start_mediasrv" 
Hinweis: Hilfe zur Verwendung der Changeset-Ansicht finden Sie unter TracChangeset.