diff options
author | Tomas Mraz <tm@t8m.info> | 2005-07-28 10:16:55 +0000 |
---|---|---|
committer | Tomas Mraz <tm@t8m.info> | 2005-07-28 10:16:55 +0000 |
commit | 2b5457bbf7352200f7bc77795adbbcfd47550855 (patch) | |
tree | 35d25f15afcda0cc86a72d3c31b30fa1135f8899 | |
parent | b697c858ecd08ad6c2e0dcdb624b26a878c27856 (diff) | |
download | pam-2b5457bbf7352200f7bc77795adbbcfd47550855.tar.gz pam-2b5457bbf7352200f7bc77795adbbcfd47550855.tar.bz2 pam-2b5457bbf7352200f7bc77795adbbcfd47550855.zip |
Relevant BUGIDs: Red Hat bz #164418
Purpose of commit: bugfix
Commit summary:
---------------
pam_userdb: Fix regression - crash when crypt param not specified
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | modules/pam_userdb/pam_userdb.c | 9 |
2 files changed, 6 insertions, 4 deletions
@@ -71,6 +71,7 @@ BerliOS Bugs are marked with (BerliOS #XXXX). * defs: Remove obsolete directory/content (kukuk) * Rename _pam_aconf.h.in to config.h (kukuk) * pam_unix: Don't ignore pam_get_item return value (kukuk) +* pam_userdb: Fix regression - crash when crypt param not specified (t8m) 0.80: Wed Jul 13 13:23:20 CEST 2005 * pam_tally: test for NULL data before dereferencing them (t8m) diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c index 09467877..87a6ffd5 100644 --- a/modules/pam_userdb/pam_userdb.c +++ b/modules/pam_userdb/pam_userdb.c @@ -164,8 +164,8 @@ user_lookup (const char *database, const char *cryptmode, } if (ctrl & PAM_DEBUG_ARG) { - _pam_log(LOG_INFO, "password in database is [%p]`%s', len is %d", - data.dptr, (char *) data.dptr, data.dsize); + _pam_log(LOG_INFO, "password in database is [%p]`%.*s', len is %d", + data.dptr, data.dsize, (char *) data.dptr, data.dsize); } if (data.dptr != NULL) { @@ -177,7 +177,7 @@ user_lookup (const char *database, const char *cryptmode, return 0; /* found it, data contents don't matter */ } - if (strncasecmp(cryptmode, "crypt", 5) == 0) { + if (cryptmode && strncasecmp(cryptmode, "crypt", 5) == 0) { /* crypt(3) password storage */ @@ -219,7 +219,8 @@ user_lookup (const char *database, const char *cryptmode, compare = strncmp(data.dptr, pass, data.dsize); } - if (strncasecmp(cryptmode, "none", 4) && ctrl & PAM_DEBUG_ARG) { + if (cryptmode && strncasecmp(cryptmode, "none", 4) + && (ctrl & PAM_DEBUG_ARG)) { _pam_log(LOG_INFO, "invalid value for crypt parameter: %s", cryptmode); _pam_log(LOG_INFO, "defaulting to plaintext password mode"); |