summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2020-03-17 21:29:24 +0000
committerDmitry V. Levin <ldv@altlinux.org>2020-03-19 18:40:16 +0000
commita512eaaf4d6334976e071bf7f57be866f1c42f6c (patch)
treeece3288a9d08cbf5e537a38575563a21d8ff7982
parent8d5fe1790a01969545e6cc1872ac629490692ac2 (diff)
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.
-rw-r--r--modules/pam_exec/pam_exec.c10
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)