fix return with error on process peer cert

This commit is contained in:
Jacob Barthelmeh
2020-02-06 11:53:42 -07:00
parent 17cfe2589b
commit 17bedbac67

View File

@ -9979,16 +9979,16 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
/* Certificate Request Context */ /* Certificate Request Context */
if ((args->idx - args->begin) + OPAQUE8_LEN > totalSz) if ((args->idx - args->begin) + OPAQUE8_LEN > totalSz)
return BUFFER_ERROR; ERROR_OUT(BUFFER_ERROR, exit_ppc);
ctxSz = *(input + args->idx); ctxSz = *(input + args->idx);
args->idx++; args->idx++;
if ((args->idx - args->begin) + ctxSz > totalSz) if ((args->idx - args->begin) + ctxSz > totalSz)
return BUFFER_ERROR; ERROR_OUT(BUFFER_ERROR, exit_ppc);
#ifndef NO_WOLFSSL_CLIENT #ifndef NO_WOLFSSL_CLIENT
/* Must be empty when received from server. */ /* Must be empty when received from server. */
if (ssl->options.side == WOLFSSL_CLIENT_END) { if (ssl->options.side == WOLFSSL_CLIENT_END) {
if (ctxSz != 0) { if (ctxSz != 0) {
return INVALID_CERT_CTX_E; ERROR_OUT(INVALID_CERT_CTX_E, exit_ppc);
} }
} }
#endif #endif
@ -9997,7 +9997,7 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
if (ssl->options.side == WOLFSSL_SERVER_END) { if (ssl->options.side == WOLFSSL_SERVER_END) {
if (ssl->options.handShakeState != HANDSHAKE_DONE && if (ssl->options.handShakeState != HANDSHAKE_DONE &&
ctxSz != 0) { ctxSz != 0) {
return INVALID_CERT_CTX_E; ERROR_OUT(INVALID_CERT_CTX_E, exit_ppc);
} }
else if (ssl->options.handShakeState == HANDSHAKE_DONE) { else if (ssl->options.handShakeState == HANDSHAKE_DONE) {
#ifdef WOLFSSL_POST_HANDSHAKE_AUTH #ifdef WOLFSSL_POST_HANDSHAKE_AUTH
@ -10020,7 +10020,7 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
} }
if (curr == NULL) if (curr == NULL)
#endif #endif
return INVALID_CERT_CTX_E; ERROR_OUT(INVALID_CERT_CTX_E, exit_ppc);
} }
} }
#endif #endif