Update call to DoAlert()

When handling the alerts, the return code wasn't checked for error codes. A corrupted alert message could cause a control flow issue.
This commit is contained in:
John Safranek 2013-06-14 12:49:56 +03:00
parent 42a0f3500f
commit 17ab84eb07
1 changed files with 5 additions and 2 deletions

View File

@ -4724,9 +4724,12 @@ int ProcessReply(CYASSL* ssl)
case alert:
CYASSL_MSG("got ALERT!");
if (DoAlert(ssl, ssl->buffers.inputBuffer.buffer,
&ssl->buffers.inputBuffer.idx, &type) == alert_fatal)
ret = DoAlert(ssl, ssl->buffers.inputBuffer.buffer,
&ssl->buffers.inputBuffer.idx, &type);
if (ret == alert_fatal)
return FATAL_ERROR;
else if (ret < 0)
return ret;
/* catch warnings that are handled as errors */
if (type == close_notify)