pthread_create(3) returns positive values on failure.

Found by inspection after finding similar bugs in other code used by
Android.
This commit is contained in:
Elliott Hughes 2019-04-25 13:36:27 -07:00 committed by Darren Tucker
parent b3a77b25e5
commit 1bd4f7f25f
1 changed files with 4 additions and 2 deletions

View File

@ -777,6 +777,7 @@ sshpam_init_ctx(Authctxt *authctxt)
{ {
struct pam_ctxt *ctxt; struct pam_ctxt *ctxt;
int socks[2]; int socks[2];
int result;
debug3("PAM: %s entering", __func__); debug3("PAM: %s entering", __func__);
/* /*
@ -803,9 +804,10 @@ sshpam_init_ctx(Authctxt *authctxt)
} }
ctxt->pam_psock = socks[0]; ctxt->pam_psock = socks[0];
ctxt->pam_csock = socks[1]; ctxt->pam_csock = socks[1];
if (pthread_create(&ctxt->pam_thread, NULL, sshpam_thread, ctxt) == -1) { result = pthread_create(&ctxt->pam_thread, NULL, sshpam_thread, ctxt);
if (result != 0) {
error("PAM: failed to start authentication thread: %s", error("PAM: failed to start authentication thread: %s",
strerror(errno)); strerror(result));
close(socks[0]); close(socks[0]);
close(socks[1]); close(socks[1]);
free(ctxt); free(ctxt);