Commit 565a53f3 authored by Bernd Edlinger's avatar Bernd Edlinger
Browse files

Fix error handling in heartbeat processing

parent d88c1368
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1324,10 +1324,16 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek)
        }
#ifndef OPENSSL_NO_HEARTBEATS
        else if (rr->type == TLS1_RT_HEARTBEAT) {
            tls1_process_heartbeat(s);
            i = tls1_process_heartbeat(s);

            if (i < 0)
                return i;

            /* Exit and notify application to read again */
            rr->length = 0;
            if (s->mode & SSL_MODE_AUTO_RETRY)
                goto start;

            /* Exit and notify application to read again */
            s->rwstate = SSL_READING;
            BIO_clear_retry_flags(SSL_get_rbio(s));
            BIO_set_retry_read(SSL_get_rbio(s));