Commit 45206340 authored by Bodo Möller's avatar Bodo Möller
Browse files

ignore Client Hellos when we're in handshake anyway

parent b35e9050
Loading
Loading
Loading
Loading
+23 −9
Original line number Diff line number Diff line
@@ -284,6 +284,10 @@ long ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok)
	p=(unsigned char *)s->init_buf->data;

	if (s->state == st1) /* s->init_num < 4 */
		{
		int skip_message;

		do
			{
			while (s->init_num < 4)
				{
@@ -298,7 +302,17 @@ long ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok)
				s->init_num+=i;
				}
			
/* XXX server may always send Hello Request */
			skip_message = 0;
			if (!s->server)
				if (p[0] == SSL3_MT_HELLO_REQUEST)
					/* The server may always send 'Hello Request' messages --
					 * we are doing a handshake anyway now, so ignore them
					 * if their format is correct */
					if (p[1] == 0 && p[2] == 0 &&p[3] == 0)
						skip_message = 1;
			}
		while (skip_message);

		if ((mt >= 0) && (*p != mt))
			{
			al=SSL_AD_UNEXPECTED_MESSAGE;