diff options
author | ikerexxe <ipedrosa@redhat.com> | 2020-07-15 09:45:12 +0200 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2020-07-15 08:05:07 +0000 |
commit | 48f44125fac8873237ade9e94942f82a8e6d6e1d (patch) | |
tree | b86be48f82e4a9d973f7b745f139c6cc5408be07 /modules/pam_unix/passverify.c | |
parent | b36351dd0137034e79194023c8d687b495e785c4 (diff) | |
download | pam-48f44125fac8873237ade9e94942f82a8e6d6e1d.tar.gz pam-48f44125fac8873237ade9e94942f82a8e6d6e1d.tar.bz2 pam-48f44125fac8873237ade9e94942f82a8e6d6e1d.zip |
Move read_passwords function from pam_unix to pam_inline.h
[ldv: rewrote commit message]
* modules/pam_unix/passverify.h (read_passwords): Remove prototype.
* modules/pam_unix/passverify.c (read_passwords): Move ...
* libpam/include/pam_inline.h: ... here, rename to pam_read_passwords,
add static inline qualifiers.
Include <unistd.h> and <errno.h>.
* modules/pam_unix/unix_chkpwd.c: Include "pam_inline.h".
(main): Replace read_passwords with pam_read_passwords.
* modules/pam_unix/unix_update.c: Include "pam_inline.h".
(set_password): Replace read_passwords with pam_read_passwords.
Diffstat (limited to 'modules/pam_unix/passverify.c')
-rw-r--r-- | modules/pam_unix/passverify.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/modules/pam_unix/passverify.c b/modules/pam_unix/passverify.c index d5cfd269..4ab7bb2c 100644 --- a/modules/pam_unix/passverify.c +++ b/modules/pam_unix/passverify.c @@ -1186,49 +1186,6 @@ getuidname(uid_t uid) return username; } -int -read_passwords(int fd, int npass, char **passwords) -{ - /* The passwords array must contain npass preallocated - * buffers of length PAM_MAX_RESP_SIZE + 1 - */ - int rbytes = 0; - int offset = 0; - int i = 0; - char *pptr; - while (npass > 0) { - rbytes = read(fd, passwords[i]+offset, PAM_MAX_RESP_SIZE+1-offset); - - if (rbytes < 0) { - if (errno == EINTR) continue; - break; - } - if (rbytes == 0) - break; - - while (npass > 0 && (pptr=memchr(passwords[i]+offset, '\0', rbytes)) - != NULL) { - rbytes -= pptr - (passwords[i]+offset) + 1; - i++; - offset = 0; - npass--; - if (rbytes > 0) { - if (npass > 0) - memcpy(passwords[i], pptr+1, rbytes); - memset(pptr+1, '\0', rbytes); - } - } - offset += rbytes; - } - - /* clear up */ - if (offset > 0 && npass > 0) { - memset(passwords[i], '\0', offset); - } - - return i; -} - #endif /* ****************************************************************** * * Copyright (c) Jan Rękorajski 1999. |