Fix infinite loop on s_client starttls xmpp
* When the host used in "-connect" is not what the remote XMPP server expects the server will return an error like this: <stream:error> <host-unknown xmlns='urn:ietf:params:xml:ns:xmpp-streams'/> </stream:error> * But the actual code will stay on the loop forever because the stop condition "/stream:features>" will never happen, * Make this more robust: The stop condition should be that BIO_read failed * Test if for example with :: openssl s_client -connect random.jabb3r.net:5222 -starttls xmpp
This commit is contained in:
parent
4e48c77572
commit
4249d4ba86
@ -1676,9 +1676,11 @@ SSL_set_tlsext_status_ids(con, ids);
|
||||
while (!strstr(mbuf, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'") &&
|
||||
!strstr(mbuf, "<starttls xmlns=\"urn:ietf:params:xml:ns:xmpp-tls\""))
|
||||
{
|
||||
if (strstr(mbuf, "/stream:features>"))
|
||||
goto shut;
|
||||
seen = BIO_read(sbio,mbuf,BUFSIZZ);
|
||||
|
||||
if (seen <= 0)
|
||||
goto shut;
|
||||
|
||||
mbuf[seen] = 0;
|
||||
}
|
||||
BIO_printf(sbio, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
|
||||
|
Loading…
x
Reference in New Issue
Block a user