Your message dated Thu, 15 Nov 2018 16:06:35 +0000
with message-id <[email protected]>
and subject line Bug#699087: fixed in sysvinit 2.91-1
has caused the Debian Bug report #699087,
regarding sysvinit: avoid potentional bugs, more efficient code and cleanups
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
699087: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699087
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: sysvinit
Version: 2.88dsf-39
Severity: wishlist
Tags: patch

Please find attached a series of patches that mostly cleanup some scripts,
but also avoid potentional bugs and make the code more efficient.

Mostly checking if there's interest for further work along those lines.
Among the patches, these:

        0015-List-fstab-files-without-forking-ls-grep-nor-sed-and.patch
        0016-Use-shell-builtin-redirection-instead-of-using-a-tou.patch
        0017-Use-guaranteed-builtin-instead-of-sometimes-true-for.patch
        0018-Use-proper-test.patch
        0019-Don-t-fork-and-simplify-value-extractions-from-proc-.patch
        0020-Use-safer-inverted-logic.patch

may be more interesting.

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-4-686-pae (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 sysvinit depends on:
ii  debianutils     4.3.4
ii  initscripts     2.88dsf-39
ii  libc6           2.13-38
ii  libselinux1     2.1.9-5
ii  libsepol1       2.1.4-3
ii  sysv-rc         2.88dsf-39
ii  sysvinit-utils  2.88dsf-39

sysvinit recommends no packages.

sysvinit suggests no packages.

-- no debconf information


Cheers,

-- 
Cristian
From e341aea111516c5298a96578351483b86252f279 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 22:48:44 +0100
Subject: [PATCH 01/21] Uniformize style; no code changes.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |   42 ++++++++------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 2ad4528..b9759bb 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -5,8 +5,7 @@
 
 # List available fstab files, including any files in /etc/fstab.d.
 # This looks ugly, but we can't use find and it's safer than globbing.
-fstab_files()
-{
+fstab_files() {
     echo /etc/fstab
     if [ -d /etc/fstab.d ]; then
         ls -1 /etc/fstab.d | grep '\.fstab$' | sed -e 's;^;/etc/fstab.d/;'
@@ -27,7 +26,7 @@ is_empty_dir() {
 }
 
 
-selinux_enabled () {
+selinux_enabled() {
 	which selinuxenabled >/dev/null 2>&1 && selinuxenabled
 }
 
@@ -36,7 +35,7 @@ selinux_enabled () {
 #	device node,
 # 2) Swap that is on a md device or a file that may be on a md
 #	device,
-_read_fstab () {
+_read_fstab() {
 	echo "fstabroot=/dev/root"
 	echo "rootdev=none"
 	echo "roottype=none"
@@ -93,14 +92,14 @@ _read_fstab () {
 # 2) Swap that is on a md device or a file that may be on a md
 #	device,
 
-read_fstab () {
+read_fstab() {
 	eval "$(_read_fstab)"
 }
 
 # Find a specific fstab entry
 # $1=mountpoint
 # $2=fstype (optional)
-_read_fstab_entry () {
+_read_fstab_entry() {
 	# Not found by default.
 	echo "MNT_FSNAME="
 	echo "MNT_DIR="
@@ -139,7 +138,7 @@ _read_fstab_entry () {
 # $1=mountpoint
 # $2=fstype (optional)
 # returns 0 on success, 1 on failure (not found or no fstab)
-read_fstab_entry () {
+read_fstab_entry() {
 	eval "$(_read_fstab_entry "$1" "$2")"
 
 	# Not found by default.
@@ -158,7 +157,7 @@ read_fstab_entry () {
 # $4: mount point
 # $5: mount device name
 # $6... : extra mount program options
-domount () {
+domount() {
 	MOUNTMODE="$1"
 	PRIFSTYPE="$2"
 	ALTFSTYPE="$3"
@@ -297,8 +296,7 @@ domount () {
 #
 # Preserve /var/run and /var/lock mountpoints
 #
-pre_mountall ()
-{
+pre_mountall() {
 	# RAMRUN and RAMLOCK on /var/run and /var/lock are obsoleted by
 	# /run.  Note that while RAMRUN is no longer used (/run is always
 	# a tmpfs), RAMLOCK is still functional, but will cause a second
@@ -313,8 +311,7 @@ pre_mountall ()
 # If the device/inode are the same, a bind mount already exists or the
 # transition is complete, so set up is not required.  Otherwise bind
 # mount $SRC on $DEST.
-bind_mount ()
-{
+bind_mount() {
 	SRC=$1
 	DEST=$2
 
@@ -349,8 +346,7 @@ bind_mount ()
 # Migrate a directory to /run and create compatibility symlink or bind
 # mount.
 #
-run_migrate ()
-{
+run_migrate() {
 	OLD=$1
 	RUN=$2
 
@@ -414,8 +410,7 @@ run_migrate ()
 #
 # Migrate /etc/mtab to a compatibility symlink
 #
-mtab_migrate ()
-{
+mtab_migrate() {
 	# Don't symlink if /proc/mounts does not exist.
 	if [ ! -r "/proc/mounts" ]; then
 		return 1
@@ -439,8 +434,7 @@ mtab_migrate ()
 # For compatibility, create /var/run and /var/lock symlinks to /run
 # and /run/lock, respectively.
 #
-post_mountall ()
-{
+post_mountall() {
 	# /var/run and /var/lock are now /run and /run/lock,
 	# respectively.  Cope with filesystems being deliberately
 	# mounted on /var/run and /var/lock.  We will create bind
@@ -490,8 +484,7 @@ post_mountall ()
 }
 
 # Mount /run
-mount_run ()
-{
+mount_run() {
 	MNTMODE="$1"
 
 	# Needed to determine if root is being mounted read-only.
@@ -520,8 +513,7 @@ mount_run ()
 }
 
 # Mount /run/lock
-mount_lock ()
-{
+mount_lock() {
 	MNTMODE="$1"
 
 	# Make lock directory as the replacement for /var/lock
@@ -557,8 +549,7 @@ mount_lock ()
 }
 
 # Mount /run/shm
-mount_shm ()
-{
+mount_shm() {
 	MNTMODE="$1"
 
 	RAMSHM_ON_DEV_SHM="no"
@@ -622,8 +613,7 @@ mount_shm ()
 #
 # Mount /tmp
 #
-mount_tmp ()
-{
+mount_tmp() {
 	MNTMODE="$1"
 
 	# If /tmp is a symlink, make sure the linked-to directory exists.
-- 
1.7.10.4

From 2a7f166367772c494957bddc5a033200ed115554 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:16:33 +0100
Subject: [PATCH 02/21] Whitespace cleanup.  No code shanges.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |  234 ++++++++++++--------
 1 file changed, 139 insertions(+), 95 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index b9759bb..263672e 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -6,10 +6,10 @@
 # List available fstab files, including any files in /etc/fstab.d.
 # This looks ugly, but we can't use find and it's safer than globbing.
 fstab_files() {
-    echo /etc/fstab
-    if [ -d /etc/fstab.d ]; then
-        ls -1 /etc/fstab.d | grep '\.fstab$' | sed -e 's;^;/etc/fstab.d/;'
-    fi
+	echo /etc/fstab
+	if [ -d /etc/fstab.d ]; then
+		ls -1 /etc/fstab.d | grep '\.fstab$' | sed -e 's;^;/etc/fstab.d/;'
+	fi
 }
 
 # $1: directory
@@ -17,9 +17,15 @@ is_empty_dir() {
 	for FILE in $1/* $1/.*
 	do
 		case "$FILE" in
-		  "$1/.*") return 0 ;;
-		  "$1/*"|"$1/."|"$1/..") continue ;;
-		  *) return 1 ;;
+			"$1/.*")
+				return 0
+				;;
+			"$1/*"|"$1/."|"$1/..")
+				continue
+				;;
+			*)
+				return 1
+				;;
 		esac
 	done
 	return 0
@@ -49,37 +55,37 @@ _read_fstab() {
 		if [ -f "$file" ]; then
 			while read DEV MTPT FSTYPE OPTS DUMP PASS JUNK; do
 				case "$DEV" in
-				  ""|\#*)
-					continue;
-					;;
-				  /dev/mapper/*)
-					[ "$FSTYPE" = "swap" ] && echo swap_on_lv=yes
-					;;
-				  /dev/*)
-					;;
-				  LABEL=*|UUID=*)
-					if [ "$MTPT" = "/" ] && [ -x /sbin/findfs ]
-					then
-						DEV="$(findfs "$DEV")"
-					fi
-					;;
-				  /*)
-					[ "$FSTYPE" = "swap" ] && echo swap_on_file=yes
-					;;
-				  *)
-					;;
+					""|\#*)
+						continue;
+						;;
+					/dev/mapper/*)
+						[ "$FSTYPE" = "swap" ] && echo swap_on_lv=yes
+						;;
+					/dev/*)
+						;;
+					LABEL=*|UUID=*)
+						if [ "$MTPT" = "/" ] && [ -x /sbin/findfs ]
+						then
+							DEV="$(findfs "$DEV")"
+						fi
+						;;
+					/*)
+						[ "$FSTYPE" = "swap" ] && echo swap_on_file=yes
+						;;
+					*)
+						;;
 				esac
 				[ "$MTPT" != "/" ] && continue
 				echo rootdev=\"$DEV\"
 				echo fstabroot=\"$DEV\"
 				echo rootopts=\"$OPTS\"
 				echo roottype=\"$FSTYPE\"
-				( [ "$PASS" != 0 ] && [ "$PASS" != "" ]   ) && echo rootcheck=yes
+				( [ "$PASS" != 0 ] && [ "$PASS" != "" ] ) && echo rootcheck=yes
 				( [ "$FSTYPE" = "nfs" ] || [ "$FSTYPE" = "nfs4" ] ) && echo rootcheck=no
 				case "$OPTS" in
-				  ro|ro,*|*,ro|*,ro,*)
-					echo rootmode=ro
-					;;
+					ro|ro,*|*,ro|*,ro,*)
+						echo rootmode=ro
+						;;
 				esac
 			done < "$file"
 		fi
@@ -112,9 +118,9 @@ _read_fstab_entry() {
 		if [ -f "$file" ]; then
 			while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
 				case "$MNT_FSNAME" in
-				  ""|\#*)
-					continue;
-					;;
+					""|\#*)
+						continue;
+						;;
 				esac
 				if [ "$MNT_DIR" = "$1" ]; then
 					if [ -n "$2" ]; then
@@ -175,22 +181,41 @@ domount() {
 
 	if [ "$PRIFSTYPE" = proc ]; then
 		case "$KERNEL" in
-			Linux|GNU) FSTYPE=proc ;;
-			*FreeBSD)  FSTYPE=linprocfs ;;
-			*)         FSTYPE=procfs ;;
+			Linux|GNU)
+				FSTYPE=proc
+				;;
+			*FreeBSD)
+				FSTYPE=linprocfs
+				;;
+			*)
+				FSTYPE=procfs
+				;;
 		esac
 	elif [ "$PRIFSTYPE" = bind ]; then
 		case "$KERNEL" in
-			Linux)     FSTYPE="$DEVNAME"; FS_OPTS="-obind" ;;
-			*FreeBSD)  FSTYPE=nullfs ;;
-			GNU)       FSTYPE=firmlink ;;
-			*)         FSTYPE=none ;;
+			Linux)
+				FSTYPE="$DEVNAME"
+				FS_OPTS="-obind"
+				;;
+			*FreeBSD)
+				FSTYPE=nullfs
+				;;
+			GNU)
+				FSTYPE=firmlink
+				;;
+			*)
+				FSTYPE=none
+				;;
 		esac
 	elif [ "$PRIFSTYPE" = tmpfs ]; then
 		# always accept tmpfs, to mount /run before /proc
 		case "$KERNEL" in
-			GNU)	FSTYPE=none ;; # for now
-			*)	FSTYPE=$PRIFSTYPE ;;
+			GNU)
+				FSTYPE=none
+				;; # for now
+			*)
+				FSTYPE=$PRIFSTYPE
+				;;
 		esac
 	elif grep -E -qs "$PRIFSTYPE\$" /proc/filesystems; then
 		FSTYPE=$PRIFSTYPE
@@ -210,8 +235,8 @@ domount() {
 
 	# We give file system type as device name if not specified as
 	# an argument
-	if [ -z "$DEVNAME" ] ; then
-	    DEVNAME=$FSTYPE
+	if [ -z "$DEVNAME" ]; then
+		DEVNAME=$FSTYPE
 	fi
 
 	# Get the mount options from /etc/fstab
@@ -226,8 +251,7 @@ domount() {
 		esac
 	fi
 
-	if [ ! -d "$MTPT" ]
-	then
+	if [ ! -d "$MTPT" ]; then
 		log_warning_msg "Mount point '$MTPT' does not exist. Skipping mount."
 		return
 	fi
@@ -244,10 +268,10 @@ domount() {
 	case "$MOUNTMODE" in
 		mount)
 			if mountpoint -q "$MTPT"; then
-			    # Already mounted, probably moved from the
-			    # initramfs, so remount with the
-			    # user-specified mount options later on.
-			    :
+				# Already mounted, probably moved from the
+				# initramfs, so remount with the
+				# user-specified mount options later on.
+				:
 			else
 				if [ "$VERBOSE" != "no" ]; then
 					is_empty_dir "$MTPT" >/dev/null 2>&1 || log_warning_msg "Files under mount point '$MTPT' will be hidden."
@@ -271,8 +295,7 @@ domount() {
 
 			if mountpoint -q "$MTPT"; then
 				# Already recorded?
-				if ! grep -E -sq "^([^ ]+) +$MTPT +" /etc/mtab < /dev/null
-				then
+				if ! grep -E -sq "^([^ ]+) +$MTPT +" /etc/mtab < /dev/null; then
 					mount $MOUNTFLAGS -t $FSTYPE $CALLER_OPTS $FSTAB_OPTS $FS_OPTS $DEVNAME $MTPT < /dev/null
 				fi
 			fi
@@ -282,7 +305,6 @@ domount() {
 			# Note does not work for bind mounts, and does
 			# not work if the fstab already has an entry
 			# for the filesystem.
-
 			if ! read_fstab_entry "$MTPT" "$FSTYPE"; then
 				CALLER_OPTS="$(echo "$CALLER_OPTS" | sed -e 's/^-o//')"
 				echo "Creating /etc/fstab entry for $MTPT to replace default in /etc/default/tmpfs (deprecated)" >&2
@@ -322,17 +344,26 @@ bind_mount() {
 	sdest="$(/usr/bin/stat -L --format="%d %i" "$DEST" 2>/dev/null || :)"
 
 	case "$(uname -s)" in
-		Linux)     FSTYPE=$SRC; OPTS="-orw -obind" ;;
-		*FreeBSD)  FSTYPE=nullfs; OPTS="-orw" ;;
-		GNU)       FSTYPE=firmlink ;;
-		*)         FSTYPE=none ;;
+		Linux)
+			FSTYPE=$SRC; OPTS="-orw -obind"
+			;;
+		*FreeBSD)
+			FSTYPE=nullfs
+			OPTS="-orw"
+			;;
+		GNU)
+			FSTYPE=firmlink
+			;;
+		*)
+			FSTYPE=none
+			;;
 	esac
 
 	# Bind mount $SRC on $DEST
 	if [ -n "$ssrc" ] && [ "$ssrc" != "$sdest" ]; then
 		[ -d "$DEST" ] || mkdir "$DEST"
 		[ -x /sbin/restorecon ] && /sbin/restorecon "$DEST"
-		if mount -t $FSTYPE "$SRC" "$DEST" $OPTS ; then
+		if mount -t $FSTYPE "$SRC" "$DEST" $OPTS; then
 			echo "Please reboot to complete migration to tmpfs-based /run" > "${DEST}/.run-transition"
 			return 0
 		fi
@@ -353,10 +384,18 @@ run_migrate() {
 	KERNEL="$(uname -s)"
 	OPTS=""
 	case "$KERNEL" in
-		Linux)     FSTYPE=none OPTS="-orw -obind";;
-		*FreeBSD)  FSTYPE=nullfs OPTS="-orw" ;;
-		GNU)       FSTYPE=firmlink ;;
-		*)         FSTYPE=none ;;
+		Linux)
+			FSTYPE=none OPTS="-orw -obind"
+			;;
+		*FreeBSD)
+			FSTYPE=nullfs OPTS="-orw"
+			;;
+		GNU)
+			FSTYPE=firmlink
+			;;
+		*)
+			FSTYPE=none
+			;;
 	esac
 
 	# Create absolute symlink if not already present.  This is to
@@ -382,12 +421,12 @@ run_migrate() {
 	# them yet.  If the user explicitly mounted a filesystem here,
 	# it will be cleaned out, but this would happen later on when
 	# bootclean runs in any case.
-	if [ ! -L "$OLD" ] && [ -d "$OLD" ] ; then
+	if [ ! -L "$OLD" ] && [ -d "$OLD" ]; then
 		rm -fr "$OLD" 2>/dev/null || true
 	fi
 
 	# If removal failed (directory still exists), set up bind mount.
-	if [ ! -L "$OLD" ] && [ -d "$OLD" ] ; then
+	if [ ! -L "$OLD" ] && [ -d "$OLD" ]; then
 		if [ "$OLD" != "/tmp" ]; then
 			log_warning_msg "Filesystem mounted on $OLD; setting up compatibility bind mount."
 			log_warning_msg "Please remove this mount from /etc/fstab; it is no longer needed, and it is preventing completion of the transition to $RUN."
@@ -465,21 +504,21 @@ post_mountall() {
 			mkdir /run
 		fi
 		if bind_mount /var/run /run; then
-		    bind_mount /var/lock /run/lock
-		    if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
+			bind_mount /var/lock /run/lock
+			if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
+				run_migrate /run/shm /dev/shm
+			else
+				run_migrate /dev/shm /run/shm
+			fi
+		fi
+	else
+		run_migrate /var/run /run
+		run_migrate /var/lock /run/lock
+		if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
 			run_migrate /run/shm /dev/shm
-		    else
+		else
 			run_migrate /dev/shm /run/shm
-		    fi
 		fi
-	else
-	    run_migrate /var/run /run
-	    run_migrate /var/lock /run/lock
-	    if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
-		run_migrate /run/shm /dev/shm
-	    else
-		run_migrate /dev/shm /run/shm
-	    fi
 	fi
 }
 
@@ -499,7 +538,7 @@ mount_run() {
 	# If /run/shm is separately mounted, /run can be safely mounted noexec.
 	RUNEXEC=
 	if [ yes = "$RAMSHM" ] || read_fstab_entry /run/shm tmpfs; then
-	    RUNEXEC=',noexec'
+		RUNEXEC=',noexec'
 	fi
 	# TODO: Add -onodev once checkroot no longer creates a device node.
 	domount "$MNTMODE" tmpfs shmfs /run tmpfs "-onosuid$RUNEXEC$RUN_OPT"
@@ -523,17 +562,19 @@ mount_lock() {
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides the existing RAMLOCK setting.
 	if read_fstab_entry /run/lock; then
-	    if [ "$MNT_TYPE" = "tmpfs" ] ; then
-		RAMLOCK="yes"
-	    else
-		RAMLOCK="no"
-	    fi
+		if [ "$MNT_TYPE" = "tmpfs" ]; then
+			RAMLOCK="yes"
+		else
+			RAMLOCK="no"
+		fi
 	fi
 
 	KERNEL="$(uname -s)"
 	NODEV="nodev,"
 	case "$KERNEL" in
-		*FreeBSD)  NODEV="" ;;
+		*FreeBSD)
+			NODEV=""
+			;;
 	esac
 
 	# Mount /run/lock as tmpfs if enabled.  This prevents user DoS
@@ -570,8 +611,7 @@ mount_shm() {
 		RAMSHM_ON_DEV_SHM="no"
 	fi
 
-	if [ ! -d "$SHMDIR" ]
-	then
+	if [ ! -d "$SHMDIR" ]; then
 		mkdir --mode=755 "$SHMDIR"
 		[ -x /sbin/restorecon ] && /sbin/restorecon "$SHMDIR"
 	fi
@@ -579,7 +619,7 @@ mount_shm() {
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides the existing RAMSHM setting.
 	if read_fstab_entry "$SHMDIR"; then
-		if [ "$MNT_TYPE" = "tmpfs" ] ; then
+		if [ "$MNT_TYPE" = "tmpfs" ]; then
 			RAMSHM="yes"
 		else
 			RAMSHM="no"
@@ -589,7 +629,9 @@ mount_shm() {
 	KERNEL="$(uname -s)"
 	NODEV="nodev,"
 	case "$KERNEL" in
-		*FreeBSD)  NODEV="" ;;
+		*FreeBSD)
+			NODEV=""
+			;;
 	esac
 
 	if [ yes = "$RAMSHM" ]; then
@@ -636,7 +678,7 @@ mount_tmp() {
 		# If there's an entry in fstab for /tmp (any
 		# filesystem type, not just tmpfs), then we don't need
 		# a tmpfs on /tmp by default.
-		if read_fstab_entry /tmp ; then
+		if read_fstab_entry /tmp; then
 			:
 		else
 			log_warning_msg "Root filesystem is read-only; mounting tmpfs on /tmp"
@@ -648,7 +690,7 @@ mount_tmp() {
 		# If there's an entry in fstab for /tmp (any
 		# filesystem type, not just tmpfs), then we don't need
 		# a tmpfs on /tmp by default.
-		if read_fstab_entry /tmp ; then
+		if read_fstab_entry /tmp; then
 			:
 		else
 			log_warning_msg "Root filesystem has insufficient free space; mounting tmpfs on /tmp"
@@ -659,17 +701,19 @@ mount_tmp() {
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides all the above settings.
 	if read_fstab_entry /tmp; then
-	    if [ "$MNT_TYPE" = "tmpfs" ] ; then
-		RAMTMP="yes"
-	    else
-		RAMTMP="no"
-	    fi
+		if [ "$MNT_TYPE" = "tmpfs" ]; then
+			RAMTMP="yes"
+		else
+			RAMTMP="no"
+		fi
 	fi
 
 	KERNEL="$(uname -s)"
 	NODEV="nodev,"
 	case "$KERNEL" in
-		*FreeBSD)  NODEV="" ;;
+		*FreeBSD)
+			NODEV=""
+			;;
 	esac
 
 	# Mount /tmp as tmpfs if enabled.
-- 
1.7.10.4

From 4016b9a53587d7e06be5a5f2397d1c0af4b5ffec Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:19:43 +0100
Subject: [PATCH 03/21] More whitespace cleanup.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 263672e..99a8833 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -126,12 +126,12 @@ _read_fstab_entry() {
 					if [ -n "$2" ]; then
 						[ "$MNT_TYPE" = "$2" ] || continue;
 					fi
-	                                echo "MNT_FSNAME=$MNT_FSNAME"
-	                                echo "MNT_DIR=$MNT_DIR"
-	                                echo "MNT_TYPE=$MNT_TYPE"
-	                                echo "MNT_OPTS=$MNT_OPTS"
-	                                echo "MNT_FREQ=$MNT_FREQ"
-	                                echo "MNT_PASS=$MNT_PASS"
+					echo "MNT_FSNAME=$MNT_FSNAME"
+					echo "MNT_DIR=$MNT_DIR"
+					echo "MNT_TYPE=$MNT_TYPE"
+					echo "MNT_OPTS=$MNT_OPTS"
+					echo "MNT_FREQ=$MNT_FREQ"
+					echo "MNT_PASS=$MNT_PASS"
 					break 2
 				fi
 				MNT_DIR=""
@@ -288,7 +288,7 @@ domount() {
 				mount $MOUNTFLAGS -oremount $CALLER_OPTS $FSTAB_OPTS $MTPT
 			fi
 			;;
-	        mtab)
+		mtab)
 			# Update mtab with correct mount options if
 			# the filesystem is mounted
 			MOUNTFLAGS="-f"
@@ -300,7 +300,7 @@ domount() {
 				fi
 			fi
 			;;
-	        fstab)
+		fstab)
 			# Generate fstab with default mount options.
 			# Note does not work for bind mounts, and does
 			# not work if the fstab already has an entry
@@ -308,8 +308,8 @@ domount() {
 			if ! read_fstab_entry "$MTPT" "$FSTYPE"; then
 				CALLER_OPTS="$(echo "$CALLER_OPTS" | sed -e 's/^-o//')"
 				echo "Creating /etc/fstab entry for $MTPT to replace default in /etc/default/tmpfs (deprecated)" >&2
-	                        echo "# This mount for $MTPT replaces the default configured in /etc/default/tmpfs"
-	                        echo "$DEVNAME	$MTPT	$FSTYPE	$CALLER_OPTS	0	0"
+				echo "# This mount for $MTPT replaces the default configured in /etc/default/tmpfs"
+				echo "$DEVNAME	$MTPT	$FSTYPE	$CALLER_OPTS	0	0"
 			fi
 			;;
 	esac
-- 
1.7.10.4

From 92d5f4f2c04162c4bf341dc3b4b8a087d1fd9382 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:24:06 +0100
Subject: [PATCH 04/21] Even more whitespace uniformization. No code changes.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 99a8833..5e63c44 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -14,8 +14,7 @@ fstab_files() {
 
 # $1: directory
 is_empty_dir() {
-	for FILE in $1/* $1/.*
-	do
+	for FILE in $1/* $1/.*; do
 		case "$FILE" in
 			"$1/.*")
 				return 0
-- 
1.7.10.4

From d6fe110f7f574c8e8c071b63512833950315a28a Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:27:07 +0100
Subject: [PATCH 05/21] Remove useless `return 0'.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    7 -------
 1 file changed, 7 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 5e63c44..0e53691 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -27,7 +27,6 @@ is_empty_dir() {
 				;;
 		esac
 	done
-	return 0
 }
 
 
@@ -368,8 +367,6 @@ bind_mount() {
 		fi
 		return 1
 	fi
-
-	return 0
 }
 
 #
@@ -441,8 +438,6 @@ run_migrate() {
 			[ -x /sbin/restorecon ] && /sbin/restorecon "$OLD"
 		fi
 	fi
-
-	return 0
 }
 
 #
@@ -464,8 +459,6 @@ mtab_migrate() {
 		ln -fs "/proc/mounts" "/etc/mtab" || return 1
 		[ -x /sbin/restorecon ] && /sbin/restorecon "/etc/mtab"
 	fi
-
-	return 0
 }
 
 #
-- 
1.7.10.4

From 7e889bb3f1adf9be98407dc93e4dc991963360d6 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:28:28 +0100
Subject: [PATCH 06/21] Add explicit return status.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 0e53691..3182f02 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -228,7 +228,7 @@ domount() {
 		else
 			log_warning_msg "Filesystem type '$PRIFSTYPE' is not supported. Skipping mount."
 		fi
-		return
+		return 0
 	fi
 
 	# We give file system type as device name if not specified as
@@ -241,7 +241,7 @@ domount() {
 	if read_fstab_entry "$MTPT" "$FSTYPE"; then
 		case "$MNT_OPTS" in
 			noauto|*,noauto|noauto,*|*,noauto,*)
-				return
+				return 0
 				;;
 			?*)
 				FSTAB_OPTS="-o$MNT_OPTS"
@@ -251,7 +251,7 @@ domount() {
 
 	if [ ! -d "$MTPT" ]; then
 		log_warning_msg "Mount point '$MTPT' does not exist. Skipping mount."
-		return
+		return 0
 	fi
 
 	if [ "$MOUNTMODE" = "mount_noupdate" ]; then
-- 
1.7.10.4

From 58a56dfcb3259c315e3bb6bc5e1f8cc03fd3fdfe Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:29:41 +0100
Subject: [PATCH 07/21] Remove some useless quotes.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 3182f02..f211f57 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -132,7 +132,7 @@ _read_fstab_entry() {
 					echo "MNT_PASS=$MNT_PASS"
 					break 2
 				fi
-				MNT_DIR=""
+				MNT_DIR=
 			done < "$file"
 		fi
 	done
@@ -335,8 +335,8 @@ bind_mount() {
 	SRC=$1
 	DEST=$2
 
-	FSTYPE=""
-	OPTS=""
+	FSTYPE=
+	OPTS=
 
 	ssrc="$(/usr/bin/stat -L --format="%d %i" "$SRC" 2>/dev/null || :)"
 	sdest="$(/usr/bin/stat -L --format="%d %i" "$DEST" 2>/dev/null || :)"
@@ -378,7 +378,7 @@ run_migrate() {
 	RUN=$2
 
 	KERNEL="$(uname -s)"
-	OPTS=""
+	OPTS=
 	case "$KERNEL" in
 		Linux)
 			FSTYPE=none OPTS="-orw -obind"
@@ -565,7 +565,7 @@ mount_lock() {
 	NODEV="nodev,"
 	case "$KERNEL" in
 		*FreeBSD)
-			NODEV=""
+			NODEV=
 			;;
 	esac
 
@@ -622,7 +622,7 @@ mount_shm() {
 	NODEV="nodev,"
 	case "$KERNEL" in
 		*FreeBSD)
-			NODEV=""
+			NODEV=
 			;;
 	esac
 
@@ -704,7 +704,7 @@ mount_tmp() {
 	NODEV="nodev,"
 	case "$KERNEL" in
 		*FreeBSD)
-			NODEV=""
+			NODEV=
 			;;
 	esac
 
-- 
1.7.10.4

From 86d0cf921749f24c60ad112b210b8688cf9e9af5 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:31:00 +0100
Subject: [PATCH 08/21] Cleanup useless null string test.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index f211f57..a55ea93 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -78,7 +78,7 @@ _read_fstab() {
 				echo fstabroot=\"$DEV\"
 				echo rootopts=\"$OPTS\"
 				echo roottype=\"$FSTYPE\"
-				( [ "$PASS" != 0 ] && [ "$PASS" != "" ] ) && echo rootcheck=yes
+				( [ "$PASS" != 0 ] && [ "$PASS" ] ) && echo rootcheck=yes
 				( [ "$FSTYPE" = "nfs" ] || [ "$FSTYPE" = "nfs4" ] ) && echo rootcheck=no
 				case "$OPTS" in
 					ro|ro,*|*,ro|*,ro,*)
-- 
1.7.10.4

From 65ea7ee4e579f4a8ed4c084b9daaf82c43838376 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:40:57 +0100
Subject: [PATCH 09/21] Remove useless control operators.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index a55ea93..05d21bd 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -54,7 +54,7 @@ _read_fstab() {
 			while read DEV MTPT FSTYPE OPTS DUMP PASS JUNK; do
 				case "$DEV" in
 					""|\#*)
-						continue;
+						continue
 						;;
 					/dev/mapper/*)
 						[ "$FSTYPE" = "swap" ] && echo swap_on_lv=yes
@@ -117,12 +117,12 @@ _read_fstab_entry() {
 			while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
 				case "$MNT_FSNAME" in
 					""|\#*)
-						continue;
+						continue
 						;;
 				esac
 				if [ "$MNT_DIR" = "$1" ]; then
 					if [ -n "$2" ]; then
-						[ "$MNT_TYPE" = "$2" ] || continue;
+						[ "$MNT_TYPE" = "$2" ] || continue
 					fi
 					echo "MNT_FSNAME=$MNT_FSNAME"
 					echo "MNT_DIR=$MNT_DIR"
-- 
1.7.10.4

From 5de3b0b91e2f99f849b13980677df3f7f3b2c26f Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Fri, 25 Jan 2013 23:59:19 +0100
Subject: [PATCH 10/21] Remove totally useless quotes.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |  173 ++++++++++----------
 1 file changed, 88 insertions(+), 85 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 05d21bd..c713ee7 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -15,11 +15,11 @@ fstab_files() {
 # $1: directory
 is_empty_dir() {
 	for FILE in $1/* $1/.*; do
-		case "$FILE" in
-			"$1/.*")
+		case $FILE in
+			$1/.*)
 				return 0
 				;;
-			"$1/*"|"$1/."|"$1/..")
+			$1/*|$1/.|$1/..)
 				continue
 				;;
 			*)
@@ -57,30 +57,30 @@ _read_fstab() {
 						continue
 						;;
 					/dev/mapper/*)
-						[ "$FSTYPE" = "swap" ] && echo swap_on_lv=yes
+						[ "$FSTYPE" = swap ] && echo swap_on_lv=yes
 						;;
 					/dev/*)
 						;;
 					LABEL=*|UUID=*)
-						if [ "$MTPT" = "/" ] && [ -x /sbin/findfs ]
+						if [ "$MTPT" = / ] && [ -x /sbin/findfs ]
 						then
-							DEV="$(findfs "$DEV")"
+							DEV=$(findfs "$DEV")
 						fi
 						;;
 					/*)
-						[ "$FSTYPE" = "swap" ] && echo swap_on_file=yes
+						[ "$FSTYPE" = swap ] && echo swap_on_file=yes
 						;;
 					*)
 						;;
 				esac
-				[ "$MTPT" != "/" ] && continue
+				[ "$MTPT" != / ] && continue
 				echo rootdev=\"$DEV\"
 				echo fstabroot=\"$DEV\"
 				echo rootopts=\"$OPTS\"
 				echo roottype=\"$FSTYPE\"
 				( [ "$PASS" != 0 ] && [ "$PASS" ] ) && echo rootcheck=yes
-				( [ "$FSTYPE" = "nfs" ] || [ "$FSTYPE" = "nfs4" ] ) && echo rootcheck=no
-				case "$OPTS" in
+				( [ "$FSTYPE" = nfs ] || [ "$FSTYPE" = nfs4 ] ) && echo rootcheck=no
+				case $OPTS in
 					ro|ro,*|*,ro|*,ro,*)
 						echo rootmode=ro
 						;;
@@ -115,7 +115,7 @@ _read_fstab_entry() {
 	fstab_files | while read file; do
 		if [ -f "$file" ]; then
 			while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
-				case "$MNT_FSNAME" in
+				case $MNT_FSNAME in
 					""|\#*)
 						continue
 						;;
@@ -169,7 +169,7 @@ domount() {
 	DEVNAME="$5"
 	CALLER_OPTS="$6"
 
-	KERNEL="$(uname -s)"
+	KERNEL=$(uname -s)
 	# Figure out filesystem type from primary and alternative type
 	FSTYPE=
 	# Filesystem-specific mount options
@@ -190,10 +190,10 @@ domount() {
 				;;
 		esac
 	elif [ "$PRIFSTYPE" = bind ]; then
-		case "$KERNEL" in
+		case $KERNEL in
 			Linux)
-				FSTYPE="$DEVNAME"
-				FS_OPTS="-obind"
+				FSTYPE=$DEVNAME
+				FS_OPTS=-obind
 				;;
 			*FreeBSD)
 				FSTYPE=nullfs
@@ -207,7 +207,7 @@ domount() {
 		esac
 	elif [ "$PRIFSTYPE" = tmpfs ]; then
 		# always accept tmpfs, to mount /run before /proc
-		case "$KERNEL" in
+		case $KERNEL in
 			GNU)
 				FSTYPE=none
 				;; # for now
@@ -239,12 +239,12 @@ domount() {
 
 	# Get the mount options from /etc/fstab
 	if read_fstab_entry "$MTPT" "$FSTYPE"; then
-		case "$MNT_OPTS" in
+		case $MNT_OPTS in
 			noauto|*,noauto|noauto,*|*,noauto,*)
 				return 0
 				;;
 			?*)
-				FSTAB_OPTS="-o$MNT_OPTS"
+				FSTAB_OPTS=-o$MNT_OPTS
 				;;
 		esac
 	fi
@@ -254,16 +254,16 @@ domount() {
 		return 0
 	fi
 
-	if [ "$MOUNTMODE" = "mount_noupdate" ]; then
-		MOUNTFLAGS="-n"
+	if [ "$MOUNTMODE" = mount_noupdate ]; then
+		MOUNTFLAGS=-n
 		MOUNTMODE=mount
 	fi
-	if [ "$MOUNTMODE" = "remount_noupdate" ]; then
-		MOUNTFLAGS="-n"
+	if [ "$MOUNTMODE" = remount_noupdate ]; then
+		MOUNTFLAGS=-n
 		MOUNTMODE=remount
 	fi
 
-	case "$MOUNTMODE" in
+	case $MOUNTMODE in
 		mount)
 			if mountpoint -q "$MTPT"; then
 				# Already mounted, probably moved from the
@@ -271,11 +271,11 @@ domount() {
 				# user-specified mount options later on.
 				:
 			else
-				if [ "$VERBOSE" != "no" ]; then
+				if [ "$VERBOSE" != no ]; then
 					is_empty_dir "$MTPT" >/dev/null 2>&1 || log_warning_msg "Files under mount point '$MTPT' will be hidden."
 				fi
 				mount $MOUNTFLAGS -t $FSTYPE $CALLER_OPTS $FSTAB_OPTS $FS_OPTS $DEVNAME $MTPT
-				if [ "$FSTYPE" = "tmpfs" -a -x /sbin/restorecon ]; then
+				if [ "$FSTYPE" = tmpfs -a -x /sbin/restorecon ]; then
 					/sbin/restorecon $MTPT
 				fi
 			fi
@@ -289,7 +289,7 @@ domount() {
 		mtab)
 			# Update mtab with correct mount options if
 			# the filesystem is mounted
-			MOUNTFLAGS="-f"
+			MOUNTFLAGS=-f
 
 			if mountpoint -q "$MTPT"; then
 				# Already recorded?
@@ -338,16 +338,17 @@ bind_mount() {
 	FSTYPE=
 	OPTS=
 
-	ssrc="$(/usr/bin/stat -L --format="%d %i" "$SRC" 2>/dev/null || :)"
-	sdest="$(/usr/bin/stat -L --format="%d %i" "$DEST" 2>/dev/null || :)"
+	ssrc=$(/usr/bin/stat -L --format="%d %i" "$SRC" 2>/dev/null || :)
+	sdest=$(/usr/bin/stat -L --format="%d %i" "$DEST" 2>/dev/null || :)
 
-	case "$(uname -s)" in
+	case $(uname -s) in
 		Linux)
-			FSTYPE=$SRC; OPTS="-orw -obind"
+			FSTYPE=$SRC
+			OPTS="-orw -obind"
 			;;
 		*FreeBSD)
 			FSTYPE=nullfs
-			OPTS="-orw"
+			OPTS=-orw
 			;;
 		GNU)
 			FSTYPE=firmlink
@@ -377,14 +378,16 @@ run_migrate() {
 	OLD=$1
 	RUN=$2
 
-	KERNEL="$(uname -s)"
+	KERNEL=$(uname -s)
 	OPTS=
-	case "$KERNEL" in
+	case $KERNEL in
 		Linux)
-			FSTYPE=none OPTS="-orw -obind"
+			FSTYPE=none
+			OPTS="-orw -obind"
 			;;
 		*FreeBSD)
-			FSTYPE=nullfs OPTS="-orw"
+			FSTYPE=nullfs
+			OPTS=-orw
 			;;
 		GNU)
 			FSTYPE=firmlink
@@ -406,8 +409,8 @@ run_migrate() {
 
 	# If both directories are the same, we don't need to do
 	# anything further.
-	sold="$(/usr/bin/stat -L --format="%d %i" "$OLD" 2>/dev/null || :)"
-	srun="$(/usr/bin/stat -L --format="%d %i" "$RUN" 2>/dev/null || :)"
+	sold=$(/usr/bin/stat -L --format="%d %i" "$OLD" 2>/dev/null || :)
+	srun=$(/usr/bin/stat -L --format="%d %i" "$RUN" 2>/dev/null || :)
 	if [ -n "$sold" ] && [ "$sold" = "$srun" ]; then
 		return 0
 	fi
@@ -423,7 +426,7 @@ run_migrate() {
 
 	# If removal failed (directory still exists), set up bind mount.
 	if [ ! -L "$OLD" ] && [ -d "$OLD" ]; then
-		if [ "$OLD" != "/tmp" ]; then
+		if [ "$OLD" != /tmp ]; then
 			log_warning_msg "Filesystem mounted on $OLD; setting up compatibility bind mount."
 			log_warning_msg "Please remove this mount from /etc/fstab; it is no longer needed, and it is preventing completion of the transition to $RUN."
 		fi
@@ -445,19 +448,19 @@ run_migrate() {
 #
 mtab_migrate() {
 	# Don't symlink if /proc/mounts does not exist.
-	if [ ! -r "/proc/mounts" ]; then
+	if [ ! -r /proc/mounts ]; then
 		return 1
 	fi
 
 	# Create symlink if not already present.
-	if [ -L "/etc/mtab" ] && [ "$(readlink "/etc/mtab")" = "/proc/mounts" ]; then
+	if [ -L /etc/mtab ] && [ "$(readlink "/etc/mtab")" = /proc/mounts ]; then
 		:
 	else
 		log_warning_msg "Creating compatibility symlink from /etc/mtab to /proc/mounts."
 
-		rm -f "/etc/mtab" || return 1
-		ln -fs "/proc/mounts" "/etc/mtab" || return 1
-		[ -x /sbin/restorecon ] && /sbin/restorecon "/etc/mtab"
+		rm -f /etc/mtab || return 1
+		ln -fs /proc/mounts /etc/mtab || return 1
+		[ -x /sbin/restorecon ] && /sbin/restorecon /etc/mtab
 	fi
 }
 
@@ -482,16 +485,16 @@ post_mountall() {
 	# directory.  The migration logic will then take care of the
 	# rest.  Note that it will take a second boot to fully
 	# migrate; it should only ever be needed on broken systems.
-	RAMSHM_ON_DEV_SHM="no"
-	if read_fstab_entry "/dev/shm"; then
-	    RAMSHM_ON_DEV_SHM="yes"
+	RAMSHM_ON_DEV_SHM=no
+	if read_fstab_entry /dev/shm; then
+	    RAMSHM_ON_DEV_SHM=yes
 	fi
-	if read_fstab_entry "/run/shm"; then
-	    RAMSHM_ON_DEV_SHM="no"
+	if read_fstab_entry /run/shm; then
+	    RAMSHM_ON_DEV_SHM=no
 	fi
 
 	if [ -L /run ]; then
-		if [ "$(readlink /run)" = "/var/run" ]; then
+		if [ "$(readlink /run)" = /var/run ]; then
 			rm -f /run
 			mkdir /run
 		fi
@@ -530,7 +533,7 @@ mount_run() {
 	# If /run/shm is separately mounted, /run can be safely mounted noexec.
 	RUNEXEC=
 	if [ yes = "$RAMSHM" ] || read_fstab_entry /run/shm tmpfs; then
-		RUNEXEC=',noexec'
+		RUNEXEC=,noexec
 	fi
 	# TODO: Add -onodev once checkroot no longer creates a device node.
 	domount "$MNTMODE" tmpfs shmfs /run tmpfs "-onosuid$RUNEXEC$RUN_OPT"
@@ -554,16 +557,16 @@ mount_lock() {
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides the existing RAMLOCK setting.
 	if read_fstab_entry /run/lock; then
-		if [ "$MNT_TYPE" = "tmpfs" ]; then
-			RAMLOCK="yes"
+		if [ "$MNT_TYPE" = tmpfs ]; then
+			RAMLOCK=yes
 		else
-			RAMLOCK="no"
+			RAMLOCK=no
 		fi
 	fi
 
-	KERNEL="$(uname -s)"
-	NODEV="nodev,"
-	case "$KERNEL" in
+	KERNEL=$(uname -s)
+	NODEV=nodev,
+	case $KERNEL in
 		*FreeBSD)
 			NODEV=
 			;;
@@ -585,22 +588,22 @@ mount_lock() {
 mount_shm() {
 	MNTMODE="$1"
 
-	RAMSHM_ON_DEV_SHM="no"
-	SHMDIR="/run/shm"
-	if read_fstab_entry "/dev/shm"; then
-		if [ "$MNTMODE" = "mount_noupdate" ]; then
+	RAMSHM_ON_DEV_SHM=no
+	SHMDIR=/run/shm
+	if read_fstab_entry /dev/shm; then
+		if [ "$MNTMODE" = mount_noupdate ]; then
 			log_warning_msg "Warning: fstab entry for /dev/shm; should probably be for /run/shm unless working around a bug in the Oracle database"
 		fi
-		SHMDIR="/dev/shm"
-		RAMSHM_ON_DEV_SHM="yes"
+		SHMDIR=/dev/shm
+		RAMSHM_ON_DEV_SHM=yes
 	fi
-	if read_fstab_entry "/run/shm"; then
-		if [ "$MNTMODE" = "mount_noupdate" ] && [ "$RAMSHM_ON_DEV_SHM" = "yes" ]; then
+	if read_fstab_entry /run/shm; then
+		if [ "$MNTMODE" = mount_noupdate ] && [ "$RAMSHM_ON_DEV_SHM" = yes ]; then
 			log_warning_msg "Warning: fstab entries for both /dev/shm and /run/shm found; only /run/shm will be used"
 		fi
 
-		SHMDIR="/run/shm"
-		RAMSHM_ON_DEV_SHM="no"
+		SHMDIR=/run/shm
+		RAMSHM_ON_DEV_SHM=no
 	fi
 
 	if [ ! -d "$SHMDIR" ]; then
@@ -611,16 +614,16 @@ mount_shm() {
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides the existing RAMSHM setting.
 	if read_fstab_entry "$SHMDIR"; then
-		if [ "$MNT_TYPE" = "tmpfs" ]; then
-			RAMSHM="yes"
+		if [ "$MNT_TYPE" = tmpfs ]; then
+			RAMSHM=yes
 		else
-			RAMSHM="no"
+			RAMSHM=no
 		fi
 	fi
 
-	KERNEL="$(uname -s)"
-	NODEV="nodev,"
-	case "$KERNEL" in
+	KERNEL=$(uname -s)
+	NODEV=nodev,
+	case $KERNEL in
 		*FreeBSD)
 			NODEV=
 			;;
@@ -652,21 +655,21 @@ mount_tmp() {
 
 	# If /tmp is a symlink, make sure the linked-to directory exists.
 	if [ -L /tmp ] && [ ! -d /tmp ]; then
-		TMPPATH="$(readlink /tmp)"
+		TMPPATH=$(readlink /tmp)
 		mkdir -p --mode=755 "$TMPPATH"
 		[ -x /sbin/restorecon ] && /sbin/restorecon "$TMPPATH"
 	fi
 
 	# Disable RAMTMP if there's 64MiB RAM or less.  May be
 	# re-enabled by overflow or read only root, below.
-	RAM_SIZE="$(ram_size)"
-	if [ -n "$RAM_SIZE" ] && [ "$((RAM_SIZE <= 65536))" = "1" ]; then
+	RAM_SIZE=$(ram_size)
+	if [ -n "$RAM_SIZE" ] && [ "$((RAM_SIZE <= 65536))" = 1 ]; then
 		RAMTMP=no
 	fi
 
 	# If root is read only, default to mounting a tmpfs on /tmp,
 	# unless one is due to be mounted from fstab.
-	if [ "$RAMTMP" != "yes" ] && [ rw != "$rootmode" ]; then
+	if [ "$RAMTMP" != yes ] && [ rw != "$rootmode" ]; then
 		# If there's an entry in fstab for /tmp (any
 		# filesystem type, not just tmpfs), then we don't need
 		# a tmpfs on /tmp by default.
@@ -674,11 +677,11 @@ mount_tmp() {
 			:
 		else
 			log_warning_msg "Root filesystem is read-only; mounting tmpfs on /tmp"
-			RAMTMP="yes"
+			RAMTMP=yes
 		fi
 	fi
 
-	if [ "$RAMTMP" != "yes" ] && need_overflow_tmp; then
+	if [ "$RAMTMP" != yes ] && need_overflow_tmp; then
 		# If there's an entry in fstab for /tmp (any
 		# filesystem type, not just tmpfs), then we don't need
 		# a tmpfs on /tmp by default.
@@ -686,23 +689,23 @@ mount_tmp() {
 			:
 		else
 			log_warning_msg "Root filesystem has insufficient free space; mounting tmpfs on /tmp"
-			RAMTMP="yes"
+			RAMTMP=yes
 		fi
 	fi
 
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides all the above settings.
 	if read_fstab_entry /tmp; then
-		if [ "$MNT_TYPE" = "tmpfs" ]; then
-			RAMTMP="yes"
+		if [ "$MNT_TYPE" = tmpfs ]; then
+			RAMTMP=yes
 		else
-			RAMTMP="no"
+			RAMTMP=no
 		fi
 	fi
 
-	KERNEL="$(uname -s)"
-	NODEV="nodev,"
-	case "$KERNEL" in
+	KERNEL=$(uname -s)
+	NODEV=nodev,
+	case $KERNEL in
 		*FreeBSD)
 			NODEV=
 			;;
-- 
1.7.10.4

From 569606aa56e375eb56fc7e421046d311eceb194a Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sat, 26 Jan 2013 00:08:35 +0100
Subject: [PATCH 11/21] Uniformize tests.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |   21 ++++++++++----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index c713ee7..1a47eb8 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -62,8 +62,7 @@ _read_fstab() {
 					/dev/*)
 						;;
 					LABEL=*|UUID=*)
-						if [ "$MTPT" = / ] && [ -x /sbin/findfs ]
-						then
+						if [ "$MTPT" = / ] && [ -x /sbin/findfs ]; then
 							DEV=$(findfs "$DEV")
 						fi
 						;;
@@ -500,7 +499,7 @@ post_mountall() {
 		fi
 		if bind_mount /var/run /run; then
 			bind_mount /var/lock /run/lock
-			if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
+			if [ "$RAMSHM_ON_DEV_SHM" = yes ]; then
 				run_migrate /run/shm /dev/shm
 			else
 				run_migrate /dev/shm /run/shm
@@ -509,7 +508,7 @@ post_mountall() {
 	else
 		run_migrate /var/run /run
 		run_migrate /var/lock /run/lock
-		if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
+		if [ "$RAMSHM_ON_DEV_SHM" = yes ]; then
 			run_migrate /run/shm /dev/shm
 		else
 			run_migrate /dev/shm /run/shm
@@ -532,7 +531,7 @@ mount_run() {
 
 	# If /run/shm is separately mounted, /run can be safely mounted noexec.
 	RUNEXEC=
-	if [ yes = "$RAMSHM" ] || read_fstab_entry /run/shm tmpfs; then
+	if [ "$RAMSHM" = yes ] || read_fstab_entry /run/shm tmpfs; then
 		RUNEXEC=,noexec
 	fi
 	# TODO: Add -onodev once checkroot no longer creates a device node.
@@ -575,7 +574,7 @@ mount_lock() {
 	# Mount /run/lock as tmpfs if enabled.  This prevents user DoS
 	# of /run by filling /run/lock at the expense of using an
 	# additional tmpfs.
-	if [ yes = "$RAMLOCK" ]; then
+	if [ "$RAMLOCK" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs /run/lock tmpfs "-o${NODEV}noexec,nosuid$LOCK_OPT"
 		# Make sure we don't get cleaned
 		touch /run/lock/.tmpfs
@@ -629,7 +628,7 @@ mount_shm() {
 			;;
 	esac
 
-	if [ yes = "$RAMSHM" ]; then
+	if [ "$RAMSHM" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs "$SHMDIR" tmpfs "-onosuid,${NODEV}noexec$SHM_OPT"
 		# Make sure we don't get cleaned
 		touch "$SHMDIR"/.tmpfs
@@ -639,7 +638,7 @@ mount_shm() {
 
 	# Migrate early, so /dev/shm is available from the start
 	if [ "$MNTMODE" = mount_noupdate ] || [ "$MNTMODE" = mount ]; then
-		if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
+		if [ "$RAMSHM_ON_DEV_SHM" = yes ]; then
 			run_migrate /run/shm /dev/shm
 		else
 			run_migrate /dev/shm /run/shm
@@ -669,7 +668,7 @@ mount_tmp() {
 
 	# If root is read only, default to mounting a tmpfs on /tmp,
 	# unless one is due to be mounted from fstab.
-	if [ "$RAMTMP" != yes ] && [ rw != "$rootmode" ]; then
+	if [ "$RAMTMP" != yes ] && [ "$rootmode" != rw ]; then
 		# If there's an entry in fstab for /tmp (any
 		# filesystem type, not just tmpfs), then we don't need
 		# a tmpfs on /tmp by default.
@@ -712,13 +711,13 @@ mount_tmp() {
 	esac
 
 	# Mount /tmp as tmpfs if enabled.
-	if [ yes = "$RAMTMP" ]; then
+	if [ "$RAMTMP" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs /tmp tmpfs "-o${NODEV}nosuid$TMP_OPT"
 		# Make sure we don't get cleaned
 		touch /tmp/.tmpfs
 	else
 		# When root is still read only, this will fail.
-		if [ mount_noupdate != "$MNTMODE" ] && [ rw = "$rootmode" ]; then
+		if [ "$MNTMODE" != mount_noupdate ] && [ "$rootmode" = rw ]; then
 			chmod "$TMP_MODE" /tmp
 		fi
 	fi
-- 
1.7.10.4

From 212240e7eb355f7a603d03d15b0cce192b636cab Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sat, 26 Jan 2013 00:09:33 +0100
Subject: [PATCH 12/21] Remove useless '-n' test operator.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 1a47eb8..aab951d 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -120,7 +120,7 @@ _read_fstab_entry() {
 						;;
 				esac
 				if [ "$MNT_DIR" = "$1" ]; then
-					if [ -n "$2" ]; then
+					if [ "$2" ]; then
 						[ "$MNT_TYPE" = "$2" ] || continue
 					fi
 					echo "MNT_FSNAME=$MNT_FSNAME"
@@ -358,7 +358,7 @@ bind_mount() {
 	esac
 
 	# Bind mount $SRC on $DEST
-	if [ -n "$ssrc" ] && [ "$ssrc" != "$sdest" ]; then
+	if [ "$ssrc" ] && [ "$ssrc" != "$sdest" ]; then
 		[ -d "$DEST" ] || mkdir "$DEST"
 		[ -x /sbin/restorecon ] && /sbin/restorecon "$DEST"
 		if mount -t $FSTYPE "$SRC" "$DEST" $OPTS; then
@@ -410,7 +410,7 @@ run_migrate() {
 	# anything further.
 	sold=$(/usr/bin/stat -L --format="%d %i" "$OLD" 2>/dev/null || :)
 	srun=$(/usr/bin/stat -L --format="%d %i" "$RUN" 2>/dev/null || :)
-	if [ -n "$sold" ] && [ "$sold" = "$srun" ]; then
+	if [ "$sold" ] && [ "$sold" = "$srun" ]; then
 		return 0
 	fi
 
@@ -662,7 +662,7 @@ mount_tmp() {
 	# Disable RAMTMP if there's 64MiB RAM or less.  May be
 	# re-enabled by overflow or read only root, below.
 	RAM_SIZE=$(ram_size)
-	if [ -n "$RAM_SIZE" ] && [ "$((RAM_SIZE <= 65536))" = 1 ]; then
+	if [ "$RAM_SIZE" ] && [ "$((RAM_SIZE <= 65536))" = 1 ]; then
 		RAMTMP=no
 	fi
 
-- 
1.7.10.4

From 15b312099603c4b1294e4c81c1b8a598b1439643 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sat, 26 Jan 2013 00:11:46 +0100
Subject: [PATCH 13/21] Uniformize logical test operator.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index aab951d..46e4b57 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -274,7 +274,7 @@ domount() {
 					is_empty_dir "$MTPT" >/dev/null 2>&1 || log_warning_msg "Files under mount point '$MTPT' will be hidden."
 				fi
 				mount $MOUNTFLAGS -t $FSTYPE $CALLER_OPTS $FSTAB_OPTS $FS_OPTS $DEVNAME $MTPT
-				if [ "$FSTYPE" = tmpfs -a -x /sbin/restorecon ]; then
+				if [ "$FSTYPE" = tmpfs ] && [ -x /sbin/restorecon ]; then
 					/sbin/restorecon $MTPT
 				fi
 			fi
-- 
1.7.10.4

From 978e2ba30204ed239108bbe5351f1c32c2ec6134 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sat, 26 Jan 2013 00:13:16 +0100
Subject: [PATCH 14/21] Remove more useless quotes.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 46e4b57..3a526b9 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -52,7 +52,7 @@ _read_fstab() {
 	fstab_files | while read file; do
 		if [ -f "$file" ]; then
 			while read DEV MTPT FSTYPE OPTS DUMP PASS JUNK; do
-				case "$DEV" in
+				case $DEV in
 					""|\#*)
 						continue
 						;;
@@ -177,7 +177,7 @@ domount() {
 	FSTAB_OPTS=
 
 	if [ "$PRIFSTYPE" = proc ]; then
-		case "$KERNEL" in
+		case $KERNEL in
 			Linux|GNU)
 				FSTYPE=proc
 				;;
-- 
1.7.10.4

From 47a54e37de0e78f7288886f45396add08c087f62 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 09:08:25 +0100
Subject: [PATCH 16/21] Use shell builtin redirection instead of using a
 `touch' fork.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 67a4578..bd6f5fa 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -549,7 +549,7 @@ mount_run() {
 	[ -d /run/sendsigs.omit.d ] || mkdir --mode=755 /run/sendsigs.omit.d/
 
 	# Make sure we don't get cleaned
-	touch /run/.tmpfs
+	>>/run/.tmpfs
 }
 
 # Mount /run/lock
@@ -584,7 +584,7 @@ mount_lock() {
 	if [ "$RAMLOCK" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs /run/lock tmpfs "-o${NODEV}noexec,nosuid$LOCK_OPT"
 		# Make sure we don't get cleaned
-		touch /run/lock/.tmpfs
+		>>/run/lock/.tmpfs
 	else
 		chmod "$LOCK_MODE" /run/lock
 	fi
@@ -638,7 +638,7 @@ mount_shm() {
 	if [ "$RAMSHM" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs "$SHMDIR" tmpfs "-onosuid,${NODEV}noexec$SHM_OPT"
 		# Make sure we don't get cleaned
-		touch "$SHMDIR"/.tmpfs
+		>>"$SHMDIR"/.tmpfs
 	else
 		chmod "$SHM_MODE" "$SHMDIR"
 	fi
@@ -721,7 +721,7 @@ mount_tmp() {
 	if [ "$RAMTMP" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs /tmp tmpfs "-o${NODEV}nosuid$TMP_OPT"
 		# Make sure we don't get cleaned
-		touch /tmp/.tmpfs
+		>>/tmp/.tmpfs
 	else
 		# When root is still read only, this will fail.
 		if [ "$MNTMODE" != mount_noupdate ] && [ "$rootmode" = rw ]; then
-- 
1.7.10.4

From 47a54e37de0e78f7288886f45396add08c087f62 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 09:08:25 +0100
Subject: [PATCH 16/21] Use shell builtin redirection instead of using a
 `touch' fork.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 67a4578..bd6f5fa 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -549,7 +549,7 @@ mount_run() {
 	[ -d /run/sendsigs.omit.d ] || mkdir --mode=755 /run/sendsigs.omit.d/
 
 	# Make sure we don't get cleaned
-	touch /run/.tmpfs
+	>>/run/.tmpfs
 }
 
 # Mount /run/lock
@@ -584,7 +584,7 @@ mount_lock() {
 	if [ "$RAMLOCK" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs /run/lock tmpfs "-o${NODEV}noexec,nosuid$LOCK_OPT"
 		# Make sure we don't get cleaned
-		touch /run/lock/.tmpfs
+		>>/run/lock/.tmpfs
 	else
 		chmod "$LOCK_MODE" /run/lock
 	fi
@@ -638,7 +638,7 @@ mount_shm() {
 	if [ "$RAMSHM" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs "$SHMDIR" tmpfs "-onosuid,${NODEV}noexec$SHM_OPT"
 		# Make sure we don't get cleaned
-		touch "$SHMDIR"/.tmpfs
+		>>"$SHMDIR"/.tmpfs
 	else
 		chmod "$SHM_MODE" "$SHMDIR"
 	fi
@@ -721,7 +721,7 @@ mount_tmp() {
 	if [ "$RAMTMP" = yes ]; then
 		domount "$MNTMODE" tmpfs shmfs /tmp tmpfs "-o${NODEV}nosuid$TMP_OPT"
 		# Make sure we don't get cleaned
-		touch /tmp/.tmpfs
+		>>/tmp/.tmpfs
 	else
 		# When root is still read only, this will fail.
 		if [ "$MNTMODE" != mount_noupdate ] && [ "$rootmode" = rw ]; then
-- 
1.7.10.4

From f9c0801e9d02ebc2b45cfb93c53ea8b511a96405 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 09:19:29 +0100
Subject: [PATCH 17/21] Use guaranteed builtin `:' instead of (sometimes)
 `true' fork.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index bd6f5fa..20520ff 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -331,7 +331,7 @@ pre_mountall() {
 	# /lib/init/rw is obsolete and replaced by /run.  It's no
 	# longer used as a mountpoint, so attempt to remove it if
 	# possible (this will fail if root is read only).
-	rmdir /lib/init/rw >/dev/null 2>&1 || true
+	rmdir /lib/init/rw >/dev/null 2>&1 || :
 }
 
 # If the device/inode are the same, a bind mount already exists or the
@@ -427,7 +427,7 @@ run_migrate() {
 	# it will be cleaned out, but this would happen later on when
 	# bootclean runs in any case.
 	if [ ! -L "$OLD" ] && [ -d "$OLD" ]; then
-		rm -fr "$OLD" 2>/dev/null || true
+		rm -fr "$OLD" 2>/dev/null || :
 	fi
 
 	# If removal failed (directory still exists), set up bind mount.
-- 
1.7.10.4

From 0f8a9c0ae93efe787ec2b2b5350bf6a99cfc1e56 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 10:11:08 +0100
Subject: [PATCH 18/21] Use proper test.

`$((foo <= 65536))' and `$(($foo <= 65536))' shows undetermined behaviour
with different shells depending on the $foo value and may hide script bugs
too.  Study `man 1 dash' and/or `man 1 bash', paragraphs "Arithmetic
Expansion", "ARITHMETIC EVALUATION".

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 20520ff..2471f40 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -91,7 +91,7 @@ _read_fstab() {
 						echo rootmode=ro
 						;;
 				esac
-			done < "$file"
+			done <"$file"
 		fi
 	done
 }
@@ -139,7 +139,7 @@ _read_fstab_entry() {
 					break 2
 				fi
 				MNT_DIR=
-			done < "$file"
+			done <"$file"
 		fi
 	done
 }
@@ -299,8 +299,8 @@ domount() {
 
 			if mountpoint -q "$MTPT"; then
 				# Already recorded?
-				if ! grep -E -sq "^([^ ]+) +$MTPT +" /etc/mtab < /dev/null; then
-					mount $MOUNTFLAGS -t $FSTYPE $CALLER_OPTS $FSTAB_OPTS $FS_OPTS $DEVNAME $MTPT < /dev/null
+				if ! grep -E -sq "^([^ ]+) +$MTPT +" /etc/mtab </dev/null; then
+					mount $MOUNTFLAGS -t $FSTYPE $CALLER_OPTS $FSTAB_OPTS $FS_OPTS $DEVNAME $MTPT </dev/null
 				fi
 			fi
 			;;
@@ -669,7 +669,7 @@ mount_tmp() {
 	# Disable RAMTMP if there's 64MiB RAM or less.  May be
 	# re-enabled by overflow or read only root, below.
 	RAM_SIZE=$(ram_size)
-	if [ "$RAM_SIZE" ] && [ "$((RAM_SIZE <= 65536))" = 1 ]; then
+	if [ "$RAM_SIZE" ] && [ $RAM_SIZE -le 65536 ]; then
 		RAMTMP=no
 	fi
 
-- 
1.7.10.4

From 620fd3dca41eb09b7d46131fe669e91d67da9f94 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 10:53:21 +0100
Subject: [PATCH 19/21] Don't fork and simplify value extractions from
 /proc/meminfo.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/tmpfs.sh |   21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/debian/src/initscripts/lib/init/tmpfs.sh b/debian/src/initscripts/lib/init/tmpfs.sh
index 117c342..8f95bd0 100644
--- a/debian/src/initscripts/lib/init/tmpfs.sh
+++ b/debian/src/initscripts/lib/init/tmpfs.sh
@@ -3,20 +3,29 @@
 #
 
 
+meminfo () {
+    _mif=/proc/meminfo
+    [ -r $_mif ] || return 0
+    while read _type _value _ignore; do
+	    case $_type in
+		    "$1")
+			    echo $_value
+			    break
+			    ;;
+	    esac
+    done <$_mif
+}
+
 # Get size of physical RAM in kiB
 ram_size ()
 {
-    [ -r /proc/meminfo ] && \
-	grep MemTotal /proc/meminfo | \
-	sed -e 's;.*[[:space:]]\([0-9][0-9]*\)[[:space:]]kB.*;\1;' || :
+    meminfo MemTotal:
 }
 
 # Get size of swap space in kiB
 swap_size ()
 {
-    [ -r /proc/meminfo ] && \
-	grep SwapTotal /proc/meminfo | \
-	sed -e 's;.*[[:space:]]\([0-9][0-9]*\)[[:space:]]kB.*;\1;' || :
+    meminfo SwapTotal:
 }
 
 #
-- 
1.7.10.4

From 11a298cb5c8a7c4e74ac91d49b232260ec65b073 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 11:04:41 +0100
Subject: [PATCH 20/21] Use safer inverted logic.

A function like:

	foo() {
		[ -x bar ] && bar
	}

will return failure if `bar' does not exist or is not executable, but:

	foo() {
		[ ! -x bar ] || bar
	}

will return failure only is `bar' is executed and fails.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |   18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index 2471f40..e447240 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -38,7 +38,7 @@ is_empty_dir() {
 
 
 selinux_enabled() {
-	which selinuxenabled >/dev/null 2>&1 && selinuxenabled
+	! which selinuxenabled >/dev/null 2>&1 || selinuxenabled
 }
 
 # Read /etc/fstab, looking for:
@@ -367,7 +367,7 @@ bind_mount() {
 	# Bind mount $SRC on $DEST
 	if [ "$ssrc" ] && [ "$ssrc" != "$sdest" ]; then
 		[ -d "$DEST" ] || mkdir "$DEST"
-		[ -x /sbin/restorecon ] && /sbin/restorecon "$DEST"
+		[ ! -x /sbin/restorecon ] || /sbin/restorecon "$DEST"
 		if mount -t $FSTYPE "$SRC" "$DEST" $OPTS; then
 			echo "Please reboot to complete migration to tmpfs-based /run" > "${DEST}/.run-transition"
 			return 0
@@ -410,7 +410,7 @@ run_migrate() {
 	if [ -L "$OLD" ] && [ "$(readlink "$OLD")" != "$RUN" ]; then
 		rm -f "$OLD"
 		ln -fs "$RUN" "$OLD"
-		[ -x /sbin/restorecon ] && /sbin/restorecon "$OLD"
+		[ ! -x /sbin/restorecon ] || /sbin/restorecon "$OLD"
 	fi
 
 	# If both directories are the same, we don't need to do
@@ -444,7 +444,7 @@ run_migrate() {
 		else
 			rm -f "$OLD"
 			ln -fs "$RUN" "$OLD"
-			[ -x /sbin/restorecon ] && /sbin/restorecon "$OLD"
+			[ ! -x /sbin/restorecon ] || /sbin/restorecon "$OLD"
 		fi
 	fi
 }
@@ -466,7 +466,7 @@ mtab_migrate() {
 
 		rm -f /etc/mtab || return 1
 		ln -fs /proc/mounts /etc/mtab || return 1
-		[ -x /sbin/restorecon ] && /sbin/restorecon /etc/mtab
+		[ ! -x /sbin/restorecon ] || /sbin/restorecon /etc/mtab
 	fi
 }
 
@@ -543,7 +543,7 @@ mount_run() {
 	fi
 	# TODO: Add -onodev once checkroot no longer creates a device node.
 	domount "$MNTMODE" tmpfs shmfs /run tmpfs "-onosuid$RUNEXEC$RUN_OPT"
-	[ -x /sbin/restorecon ] && /sbin/restorecon -r /run
+	[ ! -x /sbin/restorecon ] || /sbin/restorecon -r /run
 
 	# Make pidfile omit directory for sendsigs
 	[ -d /run/sendsigs.omit.d ] || mkdir --mode=755 /run/sendsigs.omit.d/
@@ -558,7 +558,7 @@ mount_lock() {
 
 	# Make lock directory as the replacement for /var/lock
 	[ -d /run/lock ] || mkdir --mode=755 /run/lock
-	[ -x /sbin/restorecon ] && /sbin/restorecon /run/lock
+	[ ! -x /sbin/restorecon ] || /sbin/restorecon /run/lock
 
 	# Now check if there's an entry in /etc/fstab.  If there is,
 	# it overrides the existing RAMLOCK setting.
@@ -614,7 +614,7 @@ mount_shm() {
 
 	if [ ! -d "$SHMDIR" ]; then
 		mkdir --mode=755 "$SHMDIR"
-		[ -x /sbin/restorecon ] && /sbin/restorecon "$SHMDIR"
+		[ ! -x /sbin/restorecon ] || /sbin/restorecon "$SHMDIR"
 	fi
 
 	# Now check if there's an entry in /etc/fstab.  If there is,
@@ -663,7 +663,7 @@ mount_tmp() {
 	if [ -L /tmp ] && [ ! -d /tmp ]; then
 		TMPPATH=$(readlink /tmp)
 		mkdir -p --mode=755 "$TMPPATH"
-		[ -x /sbin/restorecon ] && /sbin/restorecon "$TMPPATH"
+		[ ! -x /sbin/restorecon ] || /sbin/restorecon "$TMPPATH"
 	fi
 
 	# Disable RAMTMP if there's 64MiB RAM or less.  May be
-- 
1.7.10.4

From 0aba7c40f8afa1286772b0303e348c64610c26b3 Mon Sep 17 00:00:00 2001
From: Cristian Ionescu-Idbohrn <[email protected]>
Date: Sun, 27 Jan 2013 11:09:46 +0100
Subject: [PATCH 21/21] Small whitespace cleanup.

Signed-off-by: Cristian Ionescu-Idbohrn <[email protected]>
---
 debian/src/initscripts/lib/init/mount-functions.sh |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/src/initscripts/lib/init/mount-functions.sh b/debian/src/initscripts/lib/init/mount-functions.sh
index e447240..94db701 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -493,10 +493,10 @@ post_mountall() {
 	# migrate; it should only ever be needed on broken systems.
 	RAMSHM_ON_DEV_SHM=no
 	if read_fstab_entry /dev/shm; then
-	    RAMSHM_ON_DEV_SHM=yes
+		RAMSHM_ON_DEV_SHM=yes
 	fi
 	if read_fstab_entry /run/shm; then
-	    RAMSHM_ON_DEV_SHM=no
+		RAMSHM_ON_DEV_SHM=no
 	fi
 
 	if [ -L /run ]; then
-- 
1.7.10.4


--- End Message ---
--- Begin Message ---
Source: sysvinit
Source-Version: 2.91-1

We believe that the bug you reported is fixed in the latest version of
sysvinit, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Dmitry Bogatov <[email protected]> (supplier of updated sysvinit package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 15 Nov 2018 15:43:24 +0000
Source: sysvinit
Binary: sysvinit-core sysvinit-utils sysv-rc initscripts bootlogd
Architecture: source amd64 all
Version: 2.91-1
Distribution: experimental
Urgency: medium
Maintainer: Debian sysvinit maintainers 
<[email protected]>
Changed-By: Dmitry Bogatov <[email protected]>
Description:
 bootlogd   - daemon to log boot messages
 initscripts - scripts for initializing and shutting down the system
 sysv-rc    - System-V-like runlevel change mechanism
 sysvinit-core - System-V-like init utilities
 sysvinit-utils - System-V-like utilities
Closes: 463771 477656 507868 515595 538334 578827 619869 628140 699087 724712 
764662 774179 810229 822654 890041 911044 913154 913247
Changes:
 sysvinit (2.91-1) experimental; urgency=medium
 .
   [ Dmitry Bogatov ]
   * Revert changes, that removed `Uploaders' field
   * Make Vcs-* fields to point to debian/ repository
   * Revert changes to LSB headers that introduced breakages
     (Thanks: Andreas Henriksson)
   * Add lintian overrides for warnings about LSB headers
   * Update debian/copyright since `start-stop-daemon.c'
     is no longer provided by upstream.
   * Update `debian/watch' to check PGP signature
   * Change mailing field in `Maintainer' field
   * Support GNU/kFreeBSD-specific UFS filesystem in `bootclean.sh' script
     (Closes: #764662)
     + Thanks: Steven Chamberlain <[email protected]>
   * wrap-and-sort -sta (Closes: #774179)
   * Update example script in init-d-script(5) to work correctly on Debian
     GNU/kFreeBSD (Closes: #913247)
   * Remove `/etc/init.d/skeleton' from bin:initscripts, which is superseded
     by init-d-script(5) (Closes: #913154, #810229, #507868, #578827)
   * Remove alternative dependency on `file-rc', which is removed from Archives.
     (Closes: #911044)
   * Do not attempt to set hostname to value, just returned by hostname(1)
     in `/etc/init.d/hostname.sh' (Closes: #628140)
   * Simplify `/etc/init.d/hostname.sh' script, since output of hostname(1)
     is never empty.
   * Remove compressed logs on purge of `bootlogd' (Closes: #724712)
   * Fix whitespace errors in scripts.
   * Minor cleanup of `/etc/init.d/bootlogd' (Closes: #538334)
   * Fix misleading desciption of `PIDFILE' variable in init-d-script(5)
     (Closes: #822654)
 .
   [ Vincenzo (KatolaZ) Nicosia ]
   * New upstream release (Closes: #515595, #890041, #463771)
   * Refreshed patches
   * Add Vincenzo Nicosia to uploaders
   * Update list of copyright holders of debian/* files
   * Remove unnecessary patches
 .
   [ Boyuan Yang ]
   * Remove sysv-rc's suggestion to bum, this package has
     been removed from the archive.
 .
   [ Benda Xu ]
   * Select patches from Cristian Ionescu-Idbohrn (Closes: #699087).
   * Revert 7f0c9952b, swap is handled in checkroot.sh (Closes: #619869).
   * Provide a USB console example in inittab (Closes: #477656).
Checksums-Sha1:
 b0f779d3219c81fb571e3735ad49d1f464e1027e 2654 sysvinit_2.91-1.dsc
 cc0fcf3823b8c724f1f38ad62c2092c510dff47c 114412 sysvinit_2.91.orig.tar.xz
 a903dff218ef4a8a3224aa6f72bb34acd83a6116 538 sysvinit_2.91.orig.tar.xz.asc
 15131cac8fdbe1bdc3b869613188c1855bf79c07 127844 sysvinit_2.91-1.debian.tar.xz
 e533d35fd54829a106638a573de4850b4d253f15 14872 bootlogd-dbgsym_2.91-1_amd64.deb
 2d08152035bb057480b60122f2b542b2aff5aadc 67968 bootlogd_2.91-1_amd64.deb
 92d99deb6dc478c00b9c072feae00afbd0edddf9 89996 initscripts_2.91-1_amd64.deb
 7cf9f140553bde2c9bfe572547a1a6fce3c8804a 67864 sysv-rc_2.91-1_all.deb
 607a8183062d0dba82065fbc34e7f730ecdb3d92 96692 
sysvinit-core-dbgsym_2.91-1_amd64.deb
 3997fbe8065e33c574a0479d3362ba4c9ab702a7 143308 sysvinit-core_2.91-1_amd64.deb
 e89aef291f8e53174a96ef931cbefea9840c726c 27628 
sysvinit-utils-dbgsym_2.91-1_amd64.deb
 52b1f7e427ef961179f9da0cce543832379e526a 75308 sysvinit-utils_2.91-1_amd64.deb
 8755fc0d856803532a46c8e7520160056fe6f4b2 7780 sysvinit_2.91-1_amd64.buildinfo
Checksums-Sha256:
 3c36f6996f715c60e6b307c878f40c7e641c2b427eb1e0c70a25e4f06b5f951c 2654 
sysvinit_2.91-1.dsc
 dfaeb41bc72eae679dfdba2ffeaefe2c4fda0295cd8c8448a066e0049923e1f3 114412 
sysvinit_2.91.orig.tar.xz
 67ffc762c6177a301e770c4339d9787bbf916103e5d303ccecafbe122d33000a 538 
sysvinit_2.91.orig.tar.xz.asc
 dd4a894f84b0a68a86b003a0bbe215443bf631e8ff467fcff1c8676290543b03 127844 
sysvinit_2.91-1.debian.tar.xz
 1f3496b6a80a8656c281d851ce769ff66aa3803349b6c97ae347a89f880f133c 14872 
bootlogd-dbgsym_2.91-1_amd64.deb
 cc2d231a99f252a70b5d75fe014c46deec3bffb62a39d58915673178a1fbf415 67968 
bootlogd_2.91-1_amd64.deb
 76607a1ae43c2324cc4a7ec37a0220e9144433ca09af079343aabdeaf230d129 89996 
initscripts_2.91-1_amd64.deb
 5bce82198c295fee08cc3e6d0185a70bc26d8d3410d8cddacfbdbeccf91d7f09 67864 
sysv-rc_2.91-1_all.deb
 69accfd794250ae1c1dc6c15309c7cfe2f3e548a79c0f4bbacbcf474bd835d89 96692 
sysvinit-core-dbgsym_2.91-1_amd64.deb
 13676c20a537eef2cd9208fbd03ea4a2fbb5178b1315c66dfaf0814bfb647e08 143308 
sysvinit-core_2.91-1_amd64.deb
 f2c2de6ba5d7fdd471a7f75ef8a552dc97a34f755745dbaa2379e51856ee9a67 27628 
sysvinit-utils-dbgsym_2.91-1_amd64.deb
 8b95e996da15277b9537bfbf49360284b152187dd92f943522435311a2f5f846 75308 
sysvinit-utils_2.91-1_amd64.deb
 3f8295d98a78dcf9b6a4d284ed271b7a3d8806f42d7f0151ce96118b0a2e534e 7780 
sysvinit_2.91-1_amd64.buildinfo
Files:
 bc536a3e063780a42e542eefd304c611 2654 admin optional sysvinit_2.91-1.dsc
 c40fe20178fc4e97602817efeb9daac2 114412 admin optional 
sysvinit_2.91.orig.tar.xz
 a1e85a0dd8187d561161571ed76337a7 538 admin optional 
sysvinit_2.91.orig.tar.xz.asc
 d2dbd9b7ca7dd2704100caa96cfa2765 127844 admin optional 
sysvinit_2.91-1.debian.tar.xz
 bcaf8f55cd722b8fbface2f7ff185c10 14872 debug optional 
bootlogd-dbgsym_2.91-1_amd64.deb
 332c072e728171ab3fbd3b7d3ff5284a 67968 admin optional bootlogd_2.91-1_amd64.deb
 a57aa361fb65f7ab1a20a89b17268554 89996 admin optional 
initscripts_2.91-1_amd64.deb
 c92466f689e6184b4ef42da31fe0ce89 67864 admin optional sysv-rc_2.91-1_all.deb
 586a2acda5c147bfdfa35612e8ca0dce 96692 debug optional 
sysvinit-core-dbgsym_2.91-1_amd64.deb
 d4dfb4334b389a1e1f059d455ecbf67d 143308 admin optional 
sysvinit-core_2.91-1_amd64.deb
 5916b5c75d7146fb943b5db78573092f 27628 debug optional 
sysvinit-utils-dbgsym_2.91-1_amd64.deb
 07de00adb16ad6acf1bcd3dc8287fa10 75308 admin required 
sysvinit-utils_2.91-1_amd64.deb
 c92e4cda484b144e22fec4ce8115cca6 7780 admin optional 
sysvinit_2.91-1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJHBAEBCgAxFiEEhnHVzDbtdH7ktKj4SBLY3qgmEeYFAlvtlLITHGthY3Rpb25A
ZGViaWFuLm9yZwAKCRBIEtjeqCYR5vmBD/9KdpZ2hrsHJHvZ0a34E80ZxhbXX6UH
UdojU/uJAV6aaNzALBJSLNZxSIPRCCH8ryWP3E9NA//4V9btSfPHWHKAmCE3fXfM
EElJMRAhcHlEf/aut92M6lg6/PyEY/J3oiVClarUZIsKWL+wEk0m4vTAOjfE+v6z
e9pWADa2uIxgKqyirbY8WS/SA4GDB7XUr9jNoab0ThSHnd39L2a4Twl9P3lxc0l4
9xl1sKLGROtKIpb5oMsH13bus4vIvCjO29Mv6MJOTxsZ4Gv1Wo0khaL2gDN71R8I
yKY+BMZUdLoIWaqJddwXbFCscG3rwQWFrR8JvkELckLCT/HXjaFo/n2e5JylXaot
9AlEtXUCo5v7hCiT5tp3j9ewKe4Ge9hvWKAwWnyhA3tsqbT9ihwdh7Sq1DjyIRS0
Ng4olTRHHAD4uZTtHRVwD6GC/Uri+zzVaWjhNNgZZkPrrNqusqz1OepWk+hqMvWg
jGgLZG3NC2qt95zsfdUSSH+I1ed0OVmiS4f5kxta5TGpe8uo3pNlE47EEKXSItjn
g+TIb6NtGCdePuulInAtWfWsg0rTm0Af6RpK23qLtRtii6Fb6HIlJwdG99ULMp04
pa7Ae2uGQXka1qiKkmWHjpkG4OkymiKK1Q+091urLaCbexD2+D+EeintvqreoDlp
3ewfpcnht5mh/A==
=w3Ep
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to