diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2020-03-16 21:02:18 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2020-03-19 18:40:16 +0000 |
commit | caa9f98b43f5471104168a96dfb234755cf154f1 (patch) | |
tree | 67585f5c10ae815e89ffca69548c5f0a92493e09 /modules/pam_mkhomedir | |
parent | 40bcefca56fe98fab2f28a73ef19979dc1bbcc64 (diff) | |
download | pam-caa9f98b43f5471104168a96dfb234755cf154f1.tar.gz pam-caa9f98b43f5471104168a96dfb234755cf154f1.tar.bz2 pam-caa9f98b43f5471104168a96dfb234755cf154f1.zip |
modules/pam_mkhomedir: use pam_str_skip_prefix
* modules/pam_mkhomedir/pam_mkhomedir.c: Include "pam_inline.h".
(_pam_parse): Use pam_str_skip_prefix instead of ugly strncmp
invocations.
Diffstat (limited to 'modules/pam_mkhomedir')
-rw-r--r-- | modules/pam_mkhomedir/pam_mkhomedir.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/modules/pam_mkhomedir/pam_mkhomedir.c b/modules/pam_mkhomedir/pam_mkhomedir.c index 1a4dab47..077e6171 100644 --- a/modules/pam_mkhomedir/pam_mkhomedir.c +++ b/modules/pam_mkhomedir/pam_mkhomedir.c @@ -59,6 +59,7 @@ #include <security/pam_ext.h> #include "pam_cc_compat.h" +#include "pam_inline.h" /* argument parsing */ #define MKHOMEDIR_DEBUG 020 /* be verbose about things */ @@ -86,14 +87,16 @@ _pam_parse (const pam_handle_t *pamh, int flags, int argc, const char **argv, /* step through arguments */ for (; argc-- > 0; ++argv) { + const char *str; + if (!strcmp(*argv, "silent")) { opt->ctrl |= MKHOMEDIR_QUIET; } else if (!strcmp(*argv, "debug")) { opt->ctrl |= MKHOMEDIR_DEBUG; - } else if (!strncmp(*argv,"umask=",6)) { - opt->umask = *argv+6; - } else if (!strncmp(*argv,"skel=",5)) { - opt->skeldir = *argv+5; + } else if ((str = pam_str_skip_prefix(*argv, "umask=")) != NULL) { + opt->umask = str; + } else if ((str = pam_str_skip_prefix(*argv, "skel=")) != NULL) { + opt->skeldir = str; } else { pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv); } |