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 | 7c1c4c6c770ab99841014590cf2a5e4cc88015dc (patch) | |
tree | ddfa63675e310aab75aea1c806bf39c243c5cf10 /modules/pam_issue/pam_issue.c | |
parent | 939db6255b396c6ad1c68b14147bcf32d6a9df61 (diff) | |
download | pam-7c1c4c6c770ab99841014590cf2a5e4cc88015dc.tar.gz pam-7c1c4c6c770ab99841014590cf2a5e4cc88015dc.tar.bz2 pam-7c1c4c6c770ab99841014590cf2a5e4cc88015dc.zip |
modules/pam_issue: use pam_str_skip_prefix
* modules/pam_issue/pam_issue.c: Include "pam_inline.h".
(pam_sm_authenticate, read_issue_quoted): Use pam_str_skip_prefix
instead of ugly strncmp invocations.
Diffstat (limited to 'modules/pam_issue/pam_issue.c')
-rw-r--r-- | modules/pam_issue/pam_issue.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/modules/pam_issue/pam_issue.c b/modules/pam_issue/pam_issue.c index 8c5ae576..ea8e2a06 100644 --- a/modules/pam_issue/pam_issue.c +++ b/modules/pam_issue/pam_issue.c @@ -33,6 +33,7 @@ #include <security/_pam_macros.h> #include <security/pam_modules.h> #include <security/pam_ext.h> +#include "pam_inline.h" static int _user_prompt_set = 0; @@ -62,8 +63,10 @@ pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, _user_prompt_set = 1; for ( ; argc-- > 0 ; ++argv ) { - if (!strncmp(*argv,"issue=",6)) { - issue_file = 6 + *argv; + const char *str; + + if ((str = pam_str_skip_prefix(*argv, "issue=")) != NULL) { + issue_file = str; D(("set issue_file to: %s", issue_file)); } else if (!strcmp(*argv,"noesc")) { parse_esc = 0; @@ -233,10 +236,11 @@ read_issue_quoted(pam_handle_t *pamh, FILE *fp, char **prompt) break; case 'l': { - char *ttyn = ttyname(1); + const char *ttyn = ttyname(1); if (ttyn) { - if (!strncmp(ttyn, "/dev/", 5)) - ttyn += 5; + const char *str = pam_str_skip_prefix(ttyn, "/dev/"); + if (str != NULL) + ttyn = str; strncat(buf, ttyn, sizeof(buf) - 1); } } |