--- openssl-1.0.1m.ori/ssl/s23_srvr.c 2015-04-07 13:20:10.158483385 +0200 +++ openssl-1.0.1m/ssl/s23_srvr.c 2015-04-07 13:26:33.998474985 +0200 @@ -267,7 +267,10 @@ n = ssl23_read_bytes(s, sizeof buf_space); if (n != sizeof buf_space) - return (n); /* n == -1 || n == 0 */ + { + ssl3_release_read_buffer(s); + return(n); /* n == -1 || n == 0 */ + } p = s->packet; @@ -451,7 +454,10 @@ * s->packet_length. We have at least 11 valid packet bytes. */ if (j <= 0) - return (j); + { + ssl3_release_read_buffer(s); + return(j); + } ssl3_finish_mac(s, s->packet + 2, s->packet_length - 2);