Blob Blame History Raw
From eed8b4e5f7635f67ac68be426ade7964086e8fa0 Mon Sep 17 00:00:00 2001
From: Christophe Dumez <christophe.dumez@intel.com>
Date: Sun, 29 May 2011 17:23:53 +0300
Subject: [PATCH] Do not update mtab if it is a symlink

mount.ecryptfs_private: Do not attempt to update
mtab if it is a symbolic link.
---
 src/utils/mount.ecryptfs_private.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/src/utils/mount.ecryptfs_private.c b/src/utils/mount.ecryptfs_private.c
index c19fa84..0fa02e6 100644
--- a/src/utils/mount.ecryptfs_private.c
+++ b/src/utils/mount.ecryptfs_private.c
@@ -264,9 +264,18 @@ int is_mounted(char *dev, char *mnt, char *sig, int mounting) {
 
 
 int update_mtab(char *dev, char *mnt, char *opt) {
-/* Update /etc/mtab with new mount entry.
+/* Update /etc/mtab with new mount entry unless it is a symbolic link
  * Return 0 on success, 1 on failure.
  */
+	char dummy;
+	int useMtab;
+	/* Check if mtab is a symlink */
+	useMtab = (readlink("/etc/mtab", &dummy, 1) < 0);
+	if (!useMtab) {
+		/* No need updating mtab */
+		return 0;
+	}
+
 	FILE *fh;
 	struct mntent m;
 	fh = setmntent("/etc/mtab", "a");
-- 
1.7.5.2