mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
Fix SSL_MODE_RELEASE_BUFFERS functionality
At some point in the past do_ssl3_write() used to return the number of bytes written, or a value <= 0 on error. It now just returns a success/ error code and writes the number of bytes written to |tmpwrit|. The SSL_MODE_RELEASE_BUFFERS code was still looking at the return code for the number of bytes written rather than |tmpwrit|. This has the effect that the buffers are not released when they are supposed to be. Fixes #9490 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9505)
This commit is contained in:
parent
59972370e3
commit
8bbf63e48f
@ -639,8 +639,9 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, size_t len,
|
||||
*/
|
||||
s->s3.empty_fragment_done = 0;
|
||||
|
||||
if ((i == (int)n) && s->mode & SSL_MODE_RELEASE_BUFFERS &&
|
||||
!SSL_IS_DTLS(s))
|
||||
if (tmpwrit == n
|
||||
&& (s->mode & SSL_MODE_RELEASE_BUFFERS) != 0
|
||||
&& !SSL_IS_DTLS(s))
|
||||
ssl3_release_write_buffer(s);
|
||||
|
||||
*written = tot + tmpwrit;
|
||||
|
Loading…
Reference in New Issue
Block a user