Merge pull request #2889 from JacobBarthelmeh/SanityChecks

sanity check on input length before secure renegotiation compare
This commit is contained in:
toddouska 2020-04-14 09:21:29 -07:00 committed by GitHub
commit a2892f66c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4793,18 +4793,24 @@ static int TLSX_SecureRenegotiation_Parse(WOLFSSL* ssl, byte* input,
}
}
else if (*input == TLS_FINISHED_SZ) {
input++; /* get past size */
if (length < TLS_FINISHED_SZ + 1) {
WOLFSSL_MSG("SCR malformed buffer");
ret = BUFFER_E;
}
else {
input++; /* get past size */
/* validate client verify data */
if (XMEMCMP(input,
/* validate client verify data */
if (XMEMCMP(input,
ssl->secure_renegotiation->client_verify_data,
TLS_FINISHED_SZ) == 0) {
WOLFSSL_MSG("SCR client verify data match");
TLSX_SetResponse(ssl, TLSX_RENEGOTIATION_INFO);
ret = 0; /* verified */
} else {
/* already in error state */
WOLFSSL_MSG("SCR client verify data Failure");
WOLFSSL_MSG("SCR client verify data match");
TLSX_SetResponse(ssl, TLSX_RENEGOTIATION_INFO);
ret = 0; /* verified */
} else {
/* already in error state */
WOLFSSL_MSG("SCR client verify data Failure");
}
}
}
#endif