--- ecryptfs-utils/src/ecryptfs-utils-96/src/libecryptfs/main.c.orig +++ ecryptfs-utils/src/ecryptfs-utils-96/src/libecryptfs/main.c @@ -387,6 +387,8 @@ char *fullpath_source = NULL; char *fullpath_target = NULL; int rc; + char dummy; + int useMtab; mountent.mnt_opts = NULL; if (!source) { @@ -425,6 +427,13 @@ syslog(LOG_ERR, "Failed to perform eCryptfs mount: [%m]\n"); goto out; } + /* Check if mtab is a symlink */ + useMtab = (readlink("/etc/mtab", &dummy, 1) < 0); + if (!useMtab) { + /* No need updating mtab */ + rc = 0; + goto out; + } mtab_fd = setmntent("/etc/mtab", "a"); if (!mtab_fd) { rc = -EACCES;