Package: ecryptfs-utils Version: 87-1 Severity: important Tags: patch File: /usr/bin/ecryptfs-mount-private
If /etc/mtab is a symlink to /proc/self/mounts, mounting fails because addmntent returns an error. As a consequence, the Private directory is unusable. Included is a patch which checks if /etc/mtab is a symlink, and if so, doesn't try to call addmntent. This fixes the problem successfully for me. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.0.0-rc4-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages ecryptfs-utils depends on: ii gettext-base 0.18.1.1-3 GNU Internationalization utilities ii keyutils 1.4-6 Linux Key Management Utilities ii libc6 2.13-10 Embedded GNU C Library: Shared lib ii libecryptfs0 87-1 ecryptfs cryptographic filesystem ii libgpg-error0 1.10-0.3 library for common error values an ii libgpgme11 1.2.0-1.4 GPGME - GnuPG Made Easy ii libkeyutils1 1.4-6 Linux Key Management Utilities (li ii libnss3-1d 3.12.10-2 Network Security Service libraries ii libpam-runtime 1.1.3-2 Runtime support for the PAM librar ii libpam0g 1.1.3-2 Pluggable Authentication Modules l ecryptfs-utils recommends no packages. Versions of packages ecryptfs-utils suggests: pn cryptsetup <none> (no description available) pn opencryptoki <none> (no description available) -- no debconf information -- brian m. carlson / brian with sandals: Houston, Texas, US +1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
diff -ur ecryptfs-utils.old/src/utils/mount.ecryptfs_private.c ecryptfs-utils-87/src/utils/mount.ecryptfs_private.c
--- ecryptfs-utils.old/src/utils/mount.ecryptfs_private.c 2011-07-22 21:11:40.897428515 +0000
+++ ecryptfs-utils-87/src/utils/mount.ecryptfs_private.c 2011-07-22 22:21:37.000000000 +0000
@@ -223,7 +223,15 @@
*/
FILE *fh;
struct mntent m;
- fh = setmntent("/etc/mtab", "a");
+ struct stat st;
+ const char *filename = "/etc/mtab";
+ if (!lstat(filename, &st) && S_ISLNK(st.st_mode)) {
+ /* Assume that /etc/mtab is a link to /proc/self/mounts, so it should be
+ * handled automatically.
+ */
+ return 0;
+ }
+ fh = setmntent(filename, "a");
if (fh == NULL) {
perror("setmntent");
/* Unmount if mtab cannot be updated */
signature.asc
Description: Digital signature

