summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2020-11-19 05:46:59 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2020-11-19 05:46:59 +0000
commita90c7d9aa82430454b3194d6750e0c0c748ac6dc (patch)
tree68f69b9f3e47f01ff37aed2a058553606c6c0232 /contrib
parent2f5b0b48acb9e25cf01a02a763abf16b3b0c54b7 (diff)
parent5d48efff83b6fdae4767f16014f8391a22d31ac9 (diff)
downloadsrc-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/CREDITS1
-rw-r--r--contrib/openpam/lib/libpam/openpam_ttyconv.c12
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;