diff options
author | Elliott Hughes <enh@google.com> | 2019-04-25 13:36:27 -0700 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2019-06-07 14:16:21 +1000 |
commit | 1bd4f7f25f653e0cadb2e6f25d79bc3c35c6aa4d (patch) | |
tree | af4564a0f0d5182847746674f88810b156e5cd0a /auth-pam.c | |
parent | b3a77b25e5f7880222b179431a74fad76d2cf60c (diff) |
pthread_create(3) returns positive values on failure.
Found by inspection after finding similar bugs in other code used by
Android.
Diffstat (limited to 'auth-pam.c')
-rw-r--r-- | auth-pam.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/auth-pam.c b/auth-pam.c index 289d9f4f7..8efd7b672 100644 --- a/auth-pam.c +++ b/auth-pam.c | |||
@@ -777,6 +777,7 @@ sshpam_init_ctx(Authctxt *authctxt) | |||
777 | { | 777 | { |
778 | struct pam_ctxt *ctxt; | 778 | struct pam_ctxt *ctxt; |
779 | int socks[2]; | 779 | int socks[2]; |
780 | int result; | ||
780 | 781 | ||
781 | debug3("PAM: %s entering", __func__); | 782 | debug3("PAM: %s entering", __func__); |
782 | /* | 783 | /* |
@@ -803,9 +804,10 @@ sshpam_init_ctx(Authctxt *authctxt) | |||
803 | } | 804 | } |
804 | ctxt->pam_psock = socks[0]; | 805 | ctxt->pam_psock = socks[0]; |
805 | ctxt->pam_csock = socks[1]; | 806 | ctxt->pam_csock = socks[1]; |
806 | if (pthread_create(&ctxt->pam_thread, NULL, sshpam_thread, ctxt) == -1) { | 807 | result = pthread_create(&ctxt->pam_thread, NULL, sshpam_thread, ctxt); |
808 | if (result != 0) { | ||
807 | error("PAM: failed to start authentication thread: %s", | 809 | error("PAM: failed to start authentication thread: %s", |
808 | strerror(errno)); | 810 | strerror(result)); |
809 | close(socks[0]); | 811 | close(socks[0]); |
810 | close(socks[1]); | 812 | close(socks[1]); |
811 | free(ctxt); | 813 | free(ctxt); |