Increment the expected handshake number if the call to the handhsake

message processing function is successful, but not if the handshake
message is the client_hello. Process client hello clears that counter
and incrementing it breaks the handshake. Fixes issue #612.
This commit is contained in:
John Safranek
2016-11-03 14:49:21 -07:00
parent 3780f452e8
commit ada2573009

View File

@ -8061,7 +8061,8 @@ static int DoDtlsHandShakeMsg(WOLFSSL* ssl, byte* input, word32* inOutIdx,
/* This branch is in order next, and a complete message. */
ret = DoHandShakeMsgType(ssl, input, inOutIdx, type, size, totalSz);
if (ret == 0) {
ssl->keys.dtls_expected_peer_handshake_number++;
if (type != client_hello)
ssl->keys.dtls_expected_peer_handshake_number++;
if (ssl->dtls_rx_msg_list != NULL) {
ret = DtlsMsgDrain(ssl);
}