From 447b7fc84b8a47884d758fa5145b1bbfb043d466 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Tue, 4 Oct 2005 11:35:18 +0000 Subject: 2005-10-02 Dmitry V. Levin Steve Langasek Cleanup gratuitous use of strdup(). Fix "missing argument" checks. * modules/pam_env/pam_env.c (_pam_parse): Add const qualifier to conffile and envfile arguments. Do not use x_strdup() for conffile and envfile initialization. Fix "missing argument" checks. (_parse_config_file): Take conffile argument of type "const char *" instead of "char **". Do not free conffile. (_parse_env_file): Take env_file argument of type "const char *" instead of "char **". Do not free env_file. (pam_sm_setcred): Add const qualifier to conf_file and env_file. Pass conf_file and env_file to _parse_config_file() and _parse_env_file() by value. (pam_sm_open_session): Likewise. * modules/pam_ftp/pam_ftp.c (_pam_parse): Add const qualifier to users argument. Do not use x_strdup() for users initialization. (lookup): Add const qualifier to list argument. (pam_sm_authenticate): Add const qualifier to users argument. * modules/pam_mail/pam_mail.c (_pam_parse): Add const qualifier to maildir argument. Do not use x_strdup() for maildir initialization. Fix "missing argument" check. (get_folder): Take path_mail argument of type "const char *" instead of "char **". Do not free path_mail. (_do_mail): Add const qualifier to path_mail argument. Pass path_mail to get_folder() by value. * modules/pam_motd/pam_motd.c: Include . (pam_sm_open_session): Add const qualifier to motd_path. Do not use x_strdup() for motd_path initialization. Do not free motd_path. Fix "missing argument" check. Add "unknown option" warning. * modules/pam_userdb/pam_userdb.c (_pam_parse): Add const qualifier to database and cryptmode arguments. Fix "missing argument" checks. (pam_sm_authenticate): Add const qualifier to database and cryptmode. (pam_sm_acct_mgmt): Likewise. --- modules/pam_userdb/pam_userdb.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'modules/pam_userdb/pam_userdb.c') diff --git a/modules/pam_userdb/pam_userdb.c b/modules/pam_userdb/pam_userdb.c index 590fb313..d47d58eb 100644 --- a/modules/pam_userdb/pam_userdb.c +++ b/modules/pam_userdb/pam_userdb.c @@ -85,7 +85,7 @@ obtain_authtok(pam_handle_t *pamh) static int _pam_parse (pam_handle_t *pamh, int argc, const char **argv, - char **database, char **cryptmode) + const char **database, const char **cryptmode) { int ctrl; @@ -114,16 +114,18 @@ _pam_parse (pam_handle_t *pamh, int argc, const char **argv, else if (!strncasecmp(*argv,"db=", 3)) { *database = (*argv) + 3; - if ((*database == NULL) || (strlen (*database) == 0)) + if (**database == '\0') { + *database = NULL; pam_syslog(pamh, LOG_ERR, - "could not parse argument \"%s\"", *argv); + "db= specification missing argument - ignored"); + } } else if (!strncasecmp(*argv,"crypt=", 6)) { *cryptmode = (*argv) + 6; - if ((*cryptmode == NULL) || (strlen (*cryptmode) == 0)) + if (**cryptmode == '\0') pam_syslog(pamh, LOG_ERR, - "could not parse argument \"%s\"", *argv); + "crypt= specification missing argument - ignored"); } else { @@ -327,13 +329,13 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags UNUSED, { const char *username; const void *password; - char *database = NULL; - char *cryptmode = NULL; + const char *database = NULL; + const char *cryptmode = NULL; int retval = PAM_AUTH_ERR, ctrl; /* parse arguments */ ctrl = _pam_parse(pamh, argc, argv, &database, &cryptmode); - if ((database == NULL) || (strlen(database) == 0)) { + if (database == NULL) { pam_syslog(pamh, LOG_ERR, "can not get the database name"); return PAM_SERVICE_ERR; } @@ -422,8 +424,8 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { const char *username; - char *database = NULL; - char *cryptmode = NULL; + const char *database = NULL; + const char *cryptmode = NULL; int retval = PAM_AUTH_ERR, ctrl; /* parse arguments */ -- cgit v1.2.3