mirror of git://anongit.mindrot.org/openssh.git
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:
parent
b3a77b25e5
commit
1bd4f7f25f
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue