]> err.no Git - util-linux/commitdiff
mount.preinst: chroot-check was broken. Closes: #443466
authorLaMont Jones <lamont@debian.org>
Fri, 21 Sep 2007 19:23:55 +0000 (13:23 -0600)
committerLaMont Jones <lamont@debian.org>
Fri, 21 Sep 2007 19:23:55 +0000 (13:23 -0600)
debian/mount.preinst

index 9e613f1398ddc36730c2707bf32c8ca7428f9ffd..a0dd43cfd5696bd004ac8b12e77ed70d3dd742ce 100644 (file)
@@ -3,25 +3,25 @@
 # Debian mount preinst
 # LaMont Jones <lamont@debian.org>
 
-### do we have debconf?
-##if [ -f /usr/share/debconf/confmodule ]; then
-##    . /usr/share/debconf/confmodule
-##    DEBCONF=true
-##else
-##    DEBCONF=
-##fi
-
-DISTRO=$(lsb_release -is 2>/dev/null || echo Debian);
+chrooted() {
+  if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then
+      # the devicenumber/inode pair of / is the same as that of /sbin/init's
+      # root, so we're *not* in a chroot and hence return false.
+      return 1
+  fi
+  return 0
+}
+
 case "$1" in
     install)
        ;;
 
     upgrade)
        version=$2
-       export LANG=C   # for the comparison of mail version...
+       DISTRO=$(lsb_release -is 2>/dev/null || echo Debian);
 
        if [ Debian = "$DISTRO" ]; then
-         if [ -f /var/lib/dpkg/info/nfs-common.list ] && [ -f /proc/mounts ]; then
+         if [ -f /proc/mounts ] && ! chrooted; then
              NFS_IN_USE=$(sed -n '/^[^ ]* [^ ]* nfs /p' /proc/mounts)
          else
              NFS_IN_USE=""