diff options
author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2020-11-19 05:46:59 +0000 |
---|---|---|
committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2020-11-19 05:46:59 +0000 |
commit | a90c7d9aa82430454b3194d6750e0c0c748ac6dc (patch) | |
tree | 68f69b9f3e47f01ff37aed2a058553606c6c0232 /contrib | |
parent | 2f5b0b48acb9e25cf01a02a763abf16b3b0c54b7 (diff) | |
parent | 5d48efff83b6fdae4767f16014f8391a22d31ac9 (diff) | |
download | src-test2-a90c7d9aa82430454b3194d6750e0c0c748ac6dc.tar.gz src-test2-a90c7d9aa82430454b3194d6750e0c0c748ac6dc.zip |
Merge upstream r948: fix race condition in openpam_ttyconv(3).
Notes
Notes:
svn path=/head/; revision=367832
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/openpam/CREDITS | 1 | ||||
-rw-r--r-- | contrib/openpam/lib/libpam/openpam_ttyconv.c | 12 |
2 files changed, 7 insertions, 6 deletions
diff --git a/contrib/openpam/CREDITS b/contrib/openpam/CREDITS index b40c9d3b4826..a560f9e12c1f 100644 --- a/contrib/openpam/CREDITS +++ b/contrib/openpam/CREDITS @@ -18,6 +18,7 @@ ideas: Ankita Pal <pal.ankita.ankita@gmail.com> Baptiste Daroussin <bapt@freebsd.org> Brian Fundakowski Feldman <green@freebsd.org> + Brooks Davis <brooks@freebsd.org> Christos Zoulas <christos@netbsd.org> Daniel Richard G. <skunk@iskunk.org> Darren J. Moffat <darren.moffat@sun.com> diff --git a/contrib/openpam/lib/libpam/openpam_ttyconv.c b/contrib/openpam/lib/libpam/openpam_ttyconv.c index 8066b3b67298..1a50f1c99639 100644 --- a/contrib/openpam/lib/libpam/openpam_ttyconv.c +++ b/contrib/openpam/lib/libpam/openpam_ttyconv.c @@ -94,12 +94,6 @@ prompt_tty(int ifd, int ofd, const char *message, char *response, int echo) int pos, ret; char ch; - /* write prompt */ - if (write(ofd, message, strlen(message)) < 0) { - openpam_log(PAM_LOG_ERROR, "write(): %m"); - return (-1); - } - /* turn echo off if requested */ slflag = 0; /* prevent bogus uninitialized variable warning */ if (!echo) { @@ -115,6 +109,12 @@ prompt_tty(int ifd, int ofd, const char *message, char *response, int echo) } } + /* write prompt */ + if (write(ofd, message, strlen(message)) < 0) { + openpam_log(PAM_LOG_ERROR, "write(): %m"); + return (-1); + } + /* install signal handlers */ caught_signal = 0; action.sa_handler = &catch_signal; |