[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#587329: nfs-common: does not ignore commented out lines in fstab



Package: nfs-common
Version: 1:1.2.2-1
Severity: important
Tags: patch

The fstab read while loop in /etc/init.d/nfs-common catched my eye.
There's a real danger things may go wrong there, as commented out lines
are _not_ ignored.
The lenny version of the init script suffers from the same problem.

Please find attached a series of small patches which attempt to both
correct the potentional error mentioned above and enhance the script.


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages nfs-common depends on:
ii  adduser                  3.112           add and remove users and groups
ii  initscripts              2.88dsf-9       scripts for initializing and shutt
ii  libc6                    2.11.2-2        Embedded GNU C Library: Shared lib
ii  libcap2                  1:2.17-2        support for getting/setting POSIX.
ii  libcomerr2               1.41.12-2       common error description library
ii  libevent-1.4-2           1.4.13-stable-1 An asynchronous event notification
ii  libgssapi-krb5-2         1.8.1+dfsg-5    MIT Kerberos runtime libraries - k
ii  libgssglue1              0.1-4           mechanism-switch gssapi library
ii  libk5crypto3             1.8.1+dfsg-5    MIT Kerberos runtime libraries - C
ii  libkrb5-3                1.8.1+dfsg-5    MIT Kerberos runtime libraries
ii  libnfsidmap2             0.23-2          An nfs idmapping library
ii  librpcsecgss3            0.19-2          allows secure rpc communication us
ii  libwrap0                 7.6.q-19        Wietse Venema's TCP wrappers libra
ii  lsb-base                 3.2-23.1        Linux Standard Base 3.2 init scrip
ii  netbase                  4.42            Basic TCP/IP networking system
ii  portmap                  6.0.0-2         RPC port mapper
ii  ucf                      3.0025          Update Configuration File: preserv

nfs-common recommends no packages.

nfs-common suggests no packages.

-- no debconf information


Cheers,

-- 
Cristian
--- nfs-common.~1~	2008-07-14 12:02:48.000000000 +0200
+++ nfs-common	2010-06-27 15:02:17.000000000 +0200
@@ -81,7 +81,7 @@
 esac
 
 case "$NEED_IDMAPD" in
-    yes|no)	
+    yes|no)
         ;;
     *)
         NEED_IDMAPD=$AUTO_NEED_IDMAPD
@@ -89,7 +89,7 @@
 esac
 
 case "$NEED_GSSD" in
-    yes|no)	
+    yes|no)
         ;;
     *)
         NEED_GSSD=$AUTO_NEED_GSSD
--- nfs-common.~2~	2010-06-27 15:02:17.000000000 +0200
+++ nfs-common	2010-06-27 15:06:38.000000000 +0200
@@ -23,7 +23,7 @@
 NEED_GSSD=
 PIPEFS_MOUNTPOINT=/var/lib/nfs/rpc_pipefs
 RPCGSSDOPTS=
-if [ -f $DEFAULTFILE ]; then
+if [ -r $DEFAULTFILE ]; then
     . $DEFAULTFILE
 fi
 
@@ -40,7 +40,7 @@
 AUTO_NEED_IDMAPD=no
 AUTO_NEED_GSSD=no
 
-if [ -f /etc/fstab ]; then
+if [ -r /etc/fstab ]; then
     exec 9<&0 </etc/fstab
 
     while read DEV MTPT FSTYPE OPTS REST
@@ -68,7 +68,7 @@
 # condition in nfs-kernel-server's init script does, which has a value in
 # itself.
 #
-if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
+if [ -r /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
     AUTO_NEED_IDMAPD=yes
 fi
 
@@ -97,7 +97,7 @@
 esac
 
 do_modprobe() {
-    if [ -x /sbin/modprobe -a -f /proc/modules ]
+    if [ -x /sbin/modprobe -a -r /proc/modules ]
     then
         modprobe -q "$1" || true
     fi
--- nfs-common.~3~	2010-06-27 15:06:38.000000000 +0200
+++ nfs-common	2010-06-27 15:11:19.000000000 +0200
@@ -45,6 +45,11 @@
 
     while read DEV MTPT FSTYPE OPTS REST
     do
+	case $DEV in
+	    ''|\#*)
+		continue
+		;;
+	esac
         if [ "$FSTYPE" = "nfs4" ]; then
             AUTO_NEED_IDMAPD=yes
         fi
--- nfs-common.~4~	2010-06-27 15:11:19.000000000 +0200
+++ nfs-common	2010-06-27 15:13:39.000000000 +0200
@@ -50,15 +50,15 @@
 		continue
 		;;
 	esac
-        if [ "$FSTYPE" = "nfs4" ]; then
-            AUTO_NEED_IDMAPD=yes
-        fi
-        case "$OPTS" in
-
-            sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
-    	    AUTO_NEED_GSSD=yes
-            ;;
-        esac
+	if [ "$FSTYPE" = "nfs4" ]; then
+	    AUTO_NEED_IDMAPD=yes
+	fi
+	case "$OPTS" in
+
+	    sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
+	    AUTO_NEED_GSSD=yes
+	    ;;
+	esac
     done
 
     exec 0<&9 9<&-
@@ -79,32 +79,32 @@
 
 case "$NEED_STATD" in
     yes|no)
-        ;;
+	;;
     *)
-        NEED_STATD=yes
-        ;;
+	NEED_STATD=yes
+	;;
 esac
 
 case "$NEED_IDMAPD" in
     yes|no)
-        ;;
+	;;
     *)
-        NEED_IDMAPD=$AUTO_NEED_IDMAPD
+	NEED_IDMAPD=$AUTO_NEED_IDMAPD
 	;;
 esac
 
 case "$NEED_GSSD" in
     yes|no)
-        ;;
+	;;
     *)
-        NEED_GSSD=$AUTO_NEED_GSSD
+	NEED_GSSD=$AUTO_NEED_GSSD
 	;;
 esac
 
 do_modprobe() {
     if [ -x /sbin/modprobe -a -r /proc/modules ]
     then
-        modprobe -q "$1" || true
+	modprobe -q "$1" || true
     fi
 }
 
@@ -137,11 +137,11 @@
 	if [ "$NEED_STATD" = yes ]; then
 	    log_progress_msg "statd"
 	    start-stop-daemon --start --oknodo --quiet \
-	        --exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
+		--exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
 	    RET=$?
 	    if [ $RET != 0 ]; then
-	        log_end_msg $RET
-	        exit $RET
+		log_end_msg $RET
+		exit $RET
 	    fi
 	fi
 
@@ -157,36 +157,36 @@
 	    do_modprobe nfsd
 	    if do_mount rpc_pipefs $PIPEFS_MOUNTPOINT
 	    then
-	    	if [ "$NEED_IDMAPD" = yes ]
+		if [ "$NEED_IDMAPD" = yes ]
 		then
-	            log_progress_msg "idmapd"
+		    log_progress_msg "idmapd"
 		    start-stop-daemon --start --oknodo --quiet \
 			    --exec /usr/sbin/rpc.idmapd
 		    RET=$?
-	            if [ $RET != 0 ]; then
-        	        log_end_msg $RET
-        	        exit $RET
-                    fi
+		    if [ $RET != 0 ]; then
+			log_end_msg $RET
+			exit $RET
+		    fi
 		fi
 		if [ "$NEED_GSSD" = yes ]
 		then
 		    do_modprobe rpcsec_gss_krb5
-	            log_progress_msg "gssd"
+		    log_progress_msg "gssd"
 
-	            # we need this available; better to fail now than
+		    # we need this available; better to fail now than
 		    # mysteriously on the first mount
 		    if ! grep -q -E '^nfs[	 ]' /etc/services; then
-		    	log_action_end_msg 1 "broken /etc/services, please see /usr/share/doc/nfs-common/README.Debian.nfsv4"
+			log_action_end_msg 1 "broken /etc/services, please see /usr/share/doc/nfs-common/README.Debian.nfsv4"
 			exit 1
 		    fi
 
 		    start-stop-daemon --start --oknodo --quiet \
 			    --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS
 		    RET=$?
-	            if [ $RET != 0 ]; then
-        	        log_end_msg $RET
-        	        exit $RET
-                    fi
+		    if [ $RET != 0 ]; then
+			log_end_msg $RET
+			exit $RET
+		    fi
 		fi
 	    fi
 	fi
@@ -203,31 +203,31 @@
 		    --name rpc.gssd
 	    RET=$?
 	    if [ $RET != 0 ]; then
-                log_end_msg $RET
-                exit $RET
-            fi
+		log_end_msg $RET
+		exit $RET
+	    fi
 	fi
 	if [ "$NEED_IDMAPD" = yes ]
 	then
 	    log_progress_msg "idmapd"
 	    start-stop-daemon --stop --oknodo --quiet \
 		--name rpc.idmapd
-            RET=$?
+	    RET=$?
 	    if [ $RET != 0 ]; then
-                log_end_msg $RET
-                exit $RET
-            fi
+		log_end_msg $RET
+		exit $RET
+	    fi
 	fi
 	if [ "$NEED_STATD" = yes ]
 	then
 	    log_progress_msg "statd"
 	    start-stop-daemon --stop --oknodo --quiet \
-	        --name rpc.statd
+		--name rpc.statd
 	    RET=$?
 	    if [ $RET != 0 ]; then
-                log_end_msg $RET
-                exit $RET
-            fi
+		log_end_msg $RET
+		exit $RET
+	    fi
 	fi
 	do_umount $PIPEFS_MOUNTPOINT 2>/dev/null || true
 	log_end_msg 0
@@ -238,14 +238,14 @@
 	then
 	    if ! pidof rpc.statd >/dev/null
 	    then
-	        echo "rpc.statd not running"
-	        exit 3
+		echo "rpc.statd not running"
+		exit 3
 	    fi
 	fi
 
 	if [ "$NEED_GSSD" = yes ]
 	then
-            if ! pidof rpc.gssd >/dev/null
+	    if ! pidof rpc.gssd >/dev/null
 	    then
 		echo "rpc.gssd not running"
 		exit 3
@@ -254,7 +254,7 @@
 
 	if [ "$NEED_IDMAPD" = yes ]
 	then
-            if ! pidof rpc.idmapd >/dev/null
+	    if ! pidof rpc.idmapd >/dev/null
 	    then
 		echo "rpc.idmapd not running"
 		exit 3
--- nfs-common.~5~	2010-06-27 15:13:39.000000000 +0200
+++ nfs-common	2010-06-27 15:19:35.000000000 +0200
@@ -50,10 +50,10 @@
 		continue
 		;;
 	esac
-	if [ "$FSTYPE" = "nfs4" ]; then
+	if [ "$FSTYPE" = nfs4 ]; then
 	    AUTO_NEED_IDMAPD=yes
 	fi
-	case "$OPTS" in
+	case $OPTS in
 
 	    sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
 	    AUTO_NEED_GSSD=yes
@@ -77,7 +77,7 @@
     AUTO_NEED_IDMAPD=yes
 fi
 
-case "$NEED_STATD" in
+case $NEED_STATD in
     yes|no)
 	;;
     *)
@@ -85,7 +85,7 @@
 	;;
 esac
 
-case "$NEED_IDMAPD" in
+case $NEED_IDMAPD in
     yes|no)
 	;;
     *)
@@ -93,7 +93,7 @@
 	;;
 esac
 
-case "$NEED_GSSD" in
+case $NEED_GSSD in
     yes|no)
 	;;
     *)
@@ -130,7 +130,7 @@
 }
 
 # See how we were called.
-case "$1" in
+case $1 in
   start)
 	log_daemon_msg "Starting $DESC"
 
@@ -159,7 +159,7 @@
 	    then
 		if [ "$NEED_IDMAPD" = yes ]
 		then
-		    log_progress_msg "idmapd"
+		    log_progress_msg idmapd
 		    start-stop-daemon --start --oknodo --quiet \
 			    --exec /usr/sbin/rpc.idmapd
 		    RET=$?
@@ -198,7 +198,7 @@
 
 	if [ "$NEED_GSSD" = yes ]
 	then
-	    log_progress_msg "gssd"
+	    log_progress_msg gssd
 	    start-stop-daemon --stop --oknodo --quiet \
 		    --name rpc.gssd
 	    RET=$?
@@ -209,7 +209,7 @@
 	fi
 	if [ "$NEED_IDMAPD" = yes ]
 	then
-	    log_progress_msg "idmapd"
+	    log_progress_msg idmapd
 	    start-stop-daemon --stop --oknodo --quiet \
 		--name rpc.idmapd
 	    RET=$?
@@ -220,7 +220,7 @@
 	fi
 	if [ "$NEED_STATD" = yes ]
 	then
-	    log_progress_msg "statd"
+	    log_progress_msg statd
 	    start-stop-daemon --stop --oknodo --quiet \
 		--name rpc.statd
 	    RET=$?
--- nfs-common.~6~	2010-06-27 15:19:35.000000000 +0200
+++ nfs-common	2010-06-27 15:21:26.000000000 +0200
@@ -102,7 +102,7 @@
 esac
 
 do_modprobe() {
-    if [ -x /sbin/modprobe -a -r /proc/modules ]
+    if [ -x /sbin/modprobe ] && [ -r /proc/modules ]
     then
 	modprobe -q "$1" || true
     fi
--- nfs-common.~7~	2010-06-27 15:21:26.000000000 +0200
+++ nfs-common	2010-06-27 15:32:59.000000000 +0200
@@ -23,9 +23,7 @@
 NEED_GSSD=
 PIPEFS_MOUNTPOINT=/var/lib/nfs/rpc_pipefs
 RPCGSSDOPTS=
-if [ -r $DEFAULTFILE ]; then
-    . $DEFAULTFILE
-fi
+[ ! -r $DEFAULTFILE ] || . $DEFAULTFILE
 
 . /lib/lsb/init-functions
 
@@ -50,11 +48,8 @@
 		continue
 		;;
 	esac
-	if [ "$FSTYPE" = nfs4 ]; then
-	    AUTO_NEED_IDMAPD=yes
-	fi
+	[ "$FSTYPE" != nfs4 ] || AUTO_NEED_IDMAPD=yes
 	case $OPTS in
-
 	    sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
 	    AUTO_NEED_GSSD=yes
 	    ;;
@@ -73,9 +68,8 @@
 # condition in nfs-kernel-server's init script does, which has a value in
 # itself.
 #
-if [ -r /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
+[ ! -r /etc/exports ] || ! grep -q '^[[:space:]]*[^#]*/' /etc/exports ||
     AUTO_NEED_IDMAPD=yes
-fi
 
 case $NEED_STATD in
     yes|no)
@@ -102,31 +96,17 @@
 esac
 
 do_modprobe() {
-    if [ -x /sbin/modprobe ] && [ -r /proc/modules ]
-    then
-	modprobe -q "$1" || true
-    fi
+    [ ! -x /sbin/modprobe ] || [ ! -r /proc/modules ] ||
+	modprobe -q "$1" || :
 }
 
 do_mount() {
-    if ! grep -E -qs "$1\$" /proc/filesystems
-    then
-	return 1
-    fi
-    if ! mountpoint -q "$2"
-    then
-	mount -t "$1" "$1" "$2"
-	return
-    fi
-    return 0
+    grep -E -qs "$1\$" /proc/filesystems || return 1
+    mountpoint -q "$2" || mount -t "$1" "$1" "$2"
 }
 
 do_umount() {
-    if mountpoint -q "$1"
-    then
-	umount "$1"
-    fi
-    return 0
+    ! mountpoint -q "$1" || umount "$1"
 }
 
 # See how we were called.
--- nfs-common.~8~	2010-06-27 15:32:59.000000000 +0200
+++ nfs-common	2010-06-27 15:41:59.000000000 +0200
@@ -117,12 +117,11 @@
 	if [ "$NEED_STATD" = yes ]; then
 	    log_progress_msg "statd"
 	    start-stop-daemon --start --oknodo --quiet \
-		--exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
-	    RET=$?
-	    if [ $RET != 0 ]; then
+		--exec $PREFIX/sbin/rpc.statd -- $STATDOPTS || {
+		RET=$?
 		log_end_msg $RET
 		exit $RET
-	    fi
+	    }
 	fi
 
 	# Don't start idmapd and gssd if we don't have them (say, if /usr is not
@@ -141,12 +140,11 @@
 		then
 		    log_progress_msg idmapd
 		    start-stop-daemon --start --oknodo --quiet \
-			    --exec /usr/sbin/rpc.idmapd
-		    RET=$?
-		    if [ $RET != 0 ]; then
+			    --exec /usr/sbin/rpc.idmapd || {
+			RET=$?
 			log_end_msg $RET
 			exit $RET
-		    fi
+		    }
 		fi
 		if [ "$NEED_GSSD" = yes ]
 		then
@@ -161,12 +159,11 @@
 		    fi
 
 		    start-stop-daemon --start --oknodo --quiet \
-			    --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS
-		    RET=$?
-		    if [ $RET != 0 ]; then
+			    --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS || {
+			RET=$?
 			log_end_msg $RET
 			exit $RET
-		    fi
+		    }
 		fi
 	    fi
 	fi
@@ -179,73 +176,64 @@
 	if [ "$NEED_GSSD" = yes ]
 	then
 	    log_progress_msg gssd
-	    start-stop-daemon --stop --oknodo --quiet \
-		    --name rpc.gssd
-	    RET=$?
-	    if [ $RET != 0 ]; then
+	    start-stop-daemon --stop --oknodo --quiet --name rpc.gssd || {
+		RET=$?
 		log_end_msg $RET
 		exit $RET
-	    fi
+	    }
 	fi
 	if [ "$NEED_IDMAPD" = yes ]
 	then
 	    log_progress_msg idmapd
-	    start-stop-daemon --stop --oknodo --quiet \
-		--name rpc.idmapd
-	    RET=$?
-	    if [ $RET != 0 ]; then
+	    start-stop-daemon --stop --oknodo --quiet --name rpc.idmapd || {
+		RET=$?
 		log_end_msg $RET
 		exit $RET
-	    fi
+	    }
 	fi
 	if [ "$NEED_STATD" = yes ]
 	then
 	    log_progress_msg statd
-	    start-stop-daemon --stop --oknodo --quiet \
-		--name rpc.statd
-	    RET=$?
-	    if [ $RET != 0 ]; then
+	    start-stop-daemon --stop --oknodo --quiet --name rpc.statd || {
+		RET=$?
 		log_end_msg $RET
 		exit $RET
-	    fi
+	    }
 	fi
-	do_umount $PIPEFS_MOUNTPOINT 2>/dev/null || true
+	do_umount $PIPEFS_MOUNTPOINT 2>/dev/null || :
 	log_end_msg 0
 	;;
 
   status)
 	if [ "$NEED_STATD" = yes ]
 	then
-	    if ! pidof rpc.statd >/dev/null
-	    then
+	    pidof rpc.statd >/dev/null || {
 		echo "rpc.statd not running"
 		exit 3
-	    fi
+	    }
 	fi
 
 	if [ "$NEED_GSSD" = yes ]
 	then
-	    if ! pidof rpc.gssd >/dev/null
-	    then
+	    pidof rpc.gssd >/dev/null || {
 		echo "rpc.gssd not running"
 		exit 3
-	    fi
+	    }
 	fi
 
 	if [ "$NEED_IDMAPD" = yes ]
 	then
-	    if ! pidof rpc.idmapd >/dev/null
-	    then
+	    pidof rpc.idmapd >/dev/null || {
 		echo "rpc.idmapd not running"
 		exit 3
-	    fi
+	    }
 	fi
 
 	echo "all daemons running"
 	exit 0
 	;;
 
-  restart | force-reload)
+  restart|force-reload)
 	$0 stop
 	sleep 1
 	$0 start
--- nfs-common.~9~	2010-06-27 15:41:59.000000000 +0200
+++ nfs-common	2010-06-27 15:45:08.000000000 +0200
@@ -43,12 +43,15 @@
 
     while read DEV MTPT FSTYPE OPTS REST
     do
+	# Ignore empty and commented out lines.
 	case $DEV in
 	    ''|\#*)
 		continue
 		;;
 	esac
+
 	[ "$FSTYPE" != nfs4 ] || AUTO_NEED_IDMAPD=yes
+
 	case $OPTS in
 	    sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
 	    AUTO_NEED_GSSD=yes
--- nfs-common.~10~	2010-06-27 15:45:08.000000000 +0200
+++ nfs-common	2010-06-27 15:46:58.000000000 +0200
@@ -71,7 +71,7 @@
 # condition in nfs-kernel-server's init script does, which has a value in
 # itself.
 #
-[ ! -r /etc/exports ] || ! grep -q '^[[:space:]]*[^#]*/' /etc/exports ||
+[ ! -r /etc/exports ] || ! grep -q '^[[:blank:]]*[^#]*/' /etc/exports ||
     AUTO_NEED_IDMAPD=yes
 
 case $NEED_STATD in
--- nfs-common.~11~	2010-06-27 15:46:58.000000000 +0200
+++ nfs-common	2010-06-27 15:59:23.000000000 +0200
@@ -112,6 +112,11 @@
     ! mountpoint -q "$1" || umount "$1"
 }
 
+do_errout() {
+	log_end_msg $1
+	exit $1
+}
+
 # See how we were called.
 case $1 in
   start)
@@ -143,11 +148,7 @@
 		then
 		    log_progress_msg idmapd
 		    start-stop-daemon --start --oknodo --quiet \
-			    --exec /usr/sbin/rpc.idmapd || {
-			RET=$?
-			log_end_msg $RET
-			exit $RET
-		    }
+			    --exec /usr/sbin/rpc.idmapd || do_errout $?
 		fi
 		if [ "$NEED_GSSD" = yes ]
 		then
@@ -162,11 +163,8 @@
 		    fi
 
 		    start-stop-daemon --start --oknodo --quiet \
-			    --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS || {
-			RET=$?
-			log_end_msg $RET
-			exit $RET
-		    }
+			    --exec /usr/sbin/rpc.gssd -- $RPCGSSDOPTS ||
+			do_errout $?
 		fi
 	    fi
 	fi
@@ -179,29 +177,20 @@
 	if [ "$NEED_GSSD" = yes ]
 	then
 	    log_progress_msg gssd
-	    start-stop-daemon --stop --oknodo --quiet --name rpc.gssd || {
-		RET=$?
-		log_end_msg $RET
-		exit $RET
-	    }
+	    start-stop-daemon --stop --oknodo --quiet --name rpc.gssd ||
+		do_errout $?
 	fi
 	if [ "$NEED_IDMAPD" = yes ]
 	then
 	    log_progress_msg idmapd
 	    start-stop-daemon --stop --oknodo --quiet --name rpc.idmapd || {
-		RET=$?
-		log_end_msg $RET
-		exit $RET
-	    }
+		do_errout $?
 	fi
 	if [ "$NEED_STATD" = yes ]
 	then
 	    log_progress_msg statd
 	    start-stop-daemon --stop --oknodo --quiet --name rpc.statd || {
-		RET=$?
-		log_end_msg $RET
-		exit $RET
-	    }
+		do_errout $?
 	fi
 	do_umount $PIPEFS_MOUNTPOINT 2>/dev/null || :
 	log_end_msg 0
--- nfs-common.~12~	2010-06-27 15:59:23.000000000 +0200
+++ nfs-common	2010-06-27 16:06:58.000000000 +0200
@@ -39,8 +39,6 @@
 AUTO_NEED_GSSD=no
 
 if [ -r /etc/fstab ]; then
-    exec 9<&0 </etc/fstab
-
     while read DEV MTPT FSTYPE OPTS REST
     do
 	# Ignore empty and commented out lines.
@@ -57,9 +55,7 @@
 	    AUTO_NEED_GSSD=yes
 	    ;;
 	esac
-    done
-
-    exec 0<&9 9<&-
+    done < /etc/fstab
 fi
 
 #

Reply to: