Eliminates both ecryptfs_pam_wrapping_independent_set()
and ecryptfs_pam_automount_set().
---
 src/pam_ecryptfs/pam_ecryptfs.c |   29 +++++------------------------
 1 files changed, 5 insertions(+), 24 deletions(-)

diff --git a/src/pam_ecryptfs/pam_ecryptfs.c b/src/pam_ecryptfs/pam_ecryptfs.c
index 2a821e8..2d64587 100644
--- a/src/pam_ecryptfs/pam_ecryptfs.c
+++ b/src/pam_ecryptfs/pam_ecryptfs.c
@@ -68,32 +68,13 @@ static void error(const char *msg)
        }
 }
 
-/* returns: 0 for pam automounting not set, 1 for set, <0 for error */
-static int ecryptfs_pam_automount_set(const char *homedir)
+/* returns: 0 if file does not exist, 1 if it exists, <0 for error */
+static int file_exists_dotecryptfs(const char *homedir, char *filename)
 {
        char *file_path;
        int rc = 0;
        struct stat s;
-       if (asprintf(&file_path, "%s/.ecryptfs/auto-mount", homedir) == -1)
-               return -ENOMEM;
-       if (stat(file_path, &s) != 0) {
-               if (errno != ENOENT)
-                       rc = -errno;
-               goto out;
-       }
-       rc = 1;
-out:
-       free(file_path);
-       return rc;
-}
-
-/* returns: 0 for independent wrapping passphrase not set, 1 for set, <0 for 
error */
-static int ecryptfs_pam_wrapping_independent_set(const char *homedir)
-{
-       char *file_path;
-       int rc = 0;
-       struct stat s;
-       if (asprintf(&file_path, "%s/.ecryptfs/wrapping-independent", homedir) 
== -1)
+       if (asprintf(&file_path, "%s/.ecryptfs/%s", homedir, filename) == -1)
                return -ENOMEM;
        if (stat(file_path, &s) != 0) {
                if (errno != ENOENT)
@@ -168,7 +149,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int 
flags, int argc,
                       "rc = [%ld]\n", username, rc);
                goto out;
        }
-       if (!ecryptfs_pam_automount_set(homedir))
+       if (!file_exists_dotecryptfs(homedir, "auto-mount"))
                goto out;
        private_mnt = ecryptfs_fetch_private_mnt(homedir);
        if (ecryptfs_private_is_mounted(NULL, private_mnt, NULL, 1)) {
@@ -184,7 +165,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int 
flags, int argc,
                syslog(LOG_WARNING, "Can't check if kernel supports 
ecryptfs\n");
        saved_uid = geteuid();
        seteuid(uid);
-       if(ecryptfs_pam_wrapping_independent_set(homedir) == 1)
+       if(file_exists_dotecryptfs(homedir, "wrapping-independent") == 1)
                rc = pam_prompt(pamh, PAM_PROMPT_ECHO_OFF, &passphrase, 
"Encryption passphrase: ");
        else
                rc = pam_get_item(pamh, PAM_AUTHTOK, (const void 
**)&passphrase);
-- 
1.7.0.4


_______________________________________________
Mailing list: https://launchpad.net/~ecryptfs-devel
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~ecryptfs-devel
More help   : https://help.launchpad.net/ListHelp

Reply via email to