From 1bd4f7f25f653e0cadb2e6f25d79bc3c35c6aa4d Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 25 Apr 2019 13:36:27 -0700 Subject: [PATCH] pthread_create(3) returns positive values on failure. Found by inspection after finding similar bugs in other code used by Android. --- auth-pam.c | 6 ++++-- 1 file 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) { struct pam_ctxt *ctxt; int socks[2]; + int result; debug3("PAM: %s entering", __func__); /* @@ -803,9 +804,10 @@ sshpam_init_ctx(Authctxt *authctxt) } ctxt->pam_psock = socks[0]; 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", - strerror(errno)); + strerror(result)); close(socks[0]); close(socks[1]); free(ctxt);