From: LaMont Jones Date: Sun, 26 Aug 2007 02:27:42 +0000 (-0600) Subject: umount: only call update_mtab if mtab_is_writable(). X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4279d8b105d3dfcafcf6d190c8f6fd60a14eaece;p=util-linux umount: only call update_mtab if mtab_is_writable(). There are several calls to update_mtab() which are not guarded by mtab_is_writable(). Reported by: Daniel Jacobowitz See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338803 Signed-off-by: LaMont Jones --- diff --git a/mount/umount.c b/mount/umount.c index b3100c9a..01030051 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); }