There are several calls to update_mtab() which are not guarded by
mtab_is_writable().  Reported by: Daniel Jacobowitz <[EMAIL PROTECTED]>

See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338803

Signed-off-by: LaMont Jones <[EMAIL PROTECTED]>
---
 mount/umount.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mount/umount.c b/mount/umount.c
index b3100c9..0103005 100644
--- a/mount/umount.c
+++ b/mount/umount.c
@@ -243,7 +243,7 @@ umount_one (const char *spec, const char *node, const char 
*type,
                        remnt.mnt_type = remnt.mnt_fsname = NULL;
                        remnt.mnt_dir = xstrdup(node);
                        remnt.mnt_opts = xstrdup("ro");
-                       if (!nomtab)
+                       if (!nomtab && mtab_is_writable())
                                update_mtab(node, &remnt);
                        return 0;
                } else if (errno != EBUSY) {    /* hmm ... */
@@ -297,7 +297,7 @@ umount_one (const char *spec, const char *node, const char 
*type,
                del_loop(loopdev);
 
  writemtab:
-       if (!nomtab &&
+       if (!nomtab && mtab_is_writable() &&
            (umnt_err == 0 || umnt_err == EINVAL || umnt_err == ENOENT)) {
                update_mtab (node, NULL);
        }
-- 
1.5.2.3

-
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to