aboutsummaryrefslogtreecommitdiff
path: root/modules/pam_issue/pam_issue.c
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
commit7c1c4c6c770ab99841014590cf2a5e4cc88015dc (patch)
treeddfa63675e310aab75aea1c806bf39c243c5cf10 /modules/pam_issue/pam_issue.c
parent939db6255b396c6ad1c68b14147bcf32d6a9df61 (diff)
downloadpam-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.c14
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);
}
}