diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2020-03-17 21:29:24 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2020-03-19 18:40:16 +0000 |
commit | a512eaaf4d6334976e071bf7f57be866f1c42f6c (patch) | |
tree | ece3288a9d08cbf5e537a38575563a21d8ff7982 /modules | |
parent | 8d5fe1790a01969545e6cc1872ac629490692ac2 (diff) | |
download | pam-a512eaaf4d6334976e071bf7f57be866f1c42f6c.tar.gz pam-a512eaaf4d6334976e071bf7f57be866f1c42f6c.tar.bz2 pam-a512eaaf4d6334976e071bf7f57be866f1c42f6c.zip |
modules/pam_exec: use pam_str_skip_icase_prefix
* modules/pam_exec/pam_exec.c (call_exec): Use pam_str_skip_icase_prefix
instead of ugly strncasecmp invocations.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/pam_exec/pam_exec.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/modules/pam_exec/pam_exec.c b/modules/pam_exec/pam_exec.c index f1a1bc29..d37f555a 100644 --- a/modules/pam_exec/pam_exec.c +++ b/modules/pam_exec/pam_exec.c @@ -117,6 +117,8 @@ call_exec (const char *pam_type, pam_handle_t *pamh, for (optargc = 0; optargc < argc; optargc++) { + const char *str; + if (argv[optargc][0] == '/') /* paths starts with / */ break; @@ -124,11 +126,11 @@ call_exec (const char *pam_type, pam_handle_t *pamh, debug = 1; else if (strcasecmp (argv[optargc], "stdout") == 0) use_stdout = 1; - else if (strncasecmp (argv[optargc], "log=", 4) == 0) - logfile = &argv[optargc][4]; - else if (strncasecmp (argv[optargc], "type=", 5) == 0) + else if ((str = pam_str_skip_icase_prefix (argv[optargc], "log=")) != NULL) + logfile = str; + else if ((str = pam_str_skip_icase_prefix (argv[optargc], "type=")) != NULL) { - if (strcmp (pam_type, &argv[optargc][5]) != 0) + if (strcmp (pam_type, str) != 0) return PAM_IGNORE; } else if (strcasecmp (argv[optargc], "seteuid") == 0) |