summaryrefslogtreecommitdiff
path: root/modules/pam_mkhomedir
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2020-03-16 21:02:18 +0000
committerDmitry V. Levin <ldv@altlinux.org>2020-03-19 18:40:16 +0000
commitcaa9f98b43f5471104168a96dfb234755cf154f1 (patch)
tree67585f5c10ae815e89ffca69548c5f0a92493e09 /modules/pam_mkhomedir
parent40bcefca56fe98fab2f28a73ef19979dc1bbcc64 (diff)
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.c11
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);
}