path: root/modules/pam_userdb
diff options
authorDmitry V. Levin <>2014-01-24 23:53:09 +0000
committerDmitry V. Levin <>2014-01-27 13:41:26 +0000
commit154c00e1a480d2bac7e8aba3b13888eb909f8e7f (patch)
treebcfb6b8d16b22566f4cc492e028933d6e684a9b6 /modules/pam_userdb
parent57a1e2b274d0a6376d92ada9926e5c5741e7da20 (diff)
Fix gratuitous use of strdup and x_strdup
There is no need to copy strings passed as arguments to execve, the only potentially noticeable effect of using strdup/x_strdup would be a malformed argument list in case of memory allocation error. Also, x_strdup, being a thin wrapper around strdup, is of no benefit when its argument is known to be non-NULL, and should not be used in such cases. * modules/pam_cracklib/pam_cracklib.c (password_check): Use strdup instead of x_strdup, the latter is of no benefit in this case. * modules/pam_ftp/pam_ftp.c (lookup): Likewise. * modules/pam_userdb/pam_userdb.c (user_lookup): Likewise. * modules/pam_userdb/pam_userdb.h (x_strdup): Remove. * modules/pam_mkhomedir/pam_mkhomedir.c (create_homedir): Do not use x_strdup for strings passed as arguments to execve. * modules/pam_unix/pam_unix_acct.c (_unix_run_verify_binary): Likewise. * modules/pam_unix/pam_unix_passwd.c (_unix_run_update_binary): Likewise. * modules/pam_unix/support.c (_unix_run_helper_binary): Likewise. (_unix_verify_password): Use strdup instead of x_strdup, the latter is of no benefit in this case. * modules/pam_xauth/pam_xauth.c (run_coprocess): Do not use strdup for strings passed as arguments to execv.
Diffstat (limited to 'modules/pam_userdb')
2 files changed, 1 insertions, 4 deletions
diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c
index ff040e6f..ba36ebf2 100644
--- a/modules/pam_userdb/pam_userdb.c
+++ b/modules/pam_userdb/pam_userdb.c
@@ -184,7 +184,7 @@ user_lookup (pam_handle_t *pamh, const char *database, const char *cryptmode,
key.dsize = strlen(key.dptr);
} else {
- key.dptr = x_strdup(user);
+ key.dptr = strdup(user);
key.dsize = strlen(user);
diff --git a/modules/pam_userdb/pam_userdb.h b/modules/pam_userdb/pam_userdb.h
index 3cd8fee0..86e9b47f 100644
--- a/modules/pam_userdb/pam_userdb.h
+++ b/modules/pam_userdb/pam_userdb.h
@@ -15,9 +15,6 @@
#define PAM_USE_FPASS_ARG 0x0040
#define PAM_TRY_FPASS_ARG 0x0080
-/* Useful macros */
-#define x_strdup(s) ( (s) ? strdup(s):NULL )
/* The name of the module we are compiling */
#define MODULE_NAME "pam_userdb"