[openssl] master update
tomas at openssl.org
tomas at openssl.org
Fri Jul 16 10:20:48 UTC 2021
The branch master has been updated
via 3bec48515354bc4138ce14c5aafc2c9e3bcc473f (commit)
via 21ba77cad67f6a40b051ac9d57069fa58d0658f7 (commit)
from e0ad156d22587514b60920143917cdb149734212 (commit)
- Log -----------------------------------------------------------------
commit 3bec48515354bc4138ce14c5aafc2c9e3bcc473f
Author: Matt Caswell <matt at openssl.org>
Date: Tue Jul 13 17:44:44 2021 +0100
Disallow SSL_key_update() if there are writes pending
If an application is halfway through writing application data it should
not be allowed to attempt an SSL_key_update() operation. Instead the
SSL_write() operation should be completed.
Fixes #12485
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16077)
commit 21ba77cad67f6a40b051ac9d57069fa58d0658f7
Author: Matt Caswell <matt at openssl.org>
Date: Tue Jul 13 17:19:12 2021 +0100
Don't reset the packet pointer in ssl3_setup_read_buffer
Sometimes this function gets called when the buffers have already been
set up. If there is already a partial packet in the read buffer then the
packet pointer will be set to an incorrect value. The packet pointer already
gets reset to the correct value when we first read a packet anyway, so we
don't also need to do it in ssl3_setup_read_buffer.
Fixes #13729
Reviewed-by: Tomas Mraz <tomas at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16077)
-----------------------------------------------------------------------
Summary of changes:
ssl/record/ssl3_buffer.c | 1 -
ssl/ssl_lib.c | 5 +++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/ssl/record/ssl3_buffer.c b/ssl/record/ssl3_buffer.c
index 861610a08b..daa175d98c 100644
--- a/ssl/record/ssl3_buffer.c
+++ b/ssl/record/ssl3_buffer.c
@@ -73,7 +73,6 @@ int ssl3_setup_read_buffer(SSL *s)
b->len = len;
}
- RECORD_LAYER_set_packet(&s->rlayer, &(b->buf[0]));
return 1;
}
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index c1e8e41f02..892a417d93 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -2262,6 +2262,11 @@ int SSL_key_update(SSL *s, int updatetype)
return 0;
}
+ if (RECORD_LAYER_write_pending(&s->rlayer)) {
+ ERR_raise(ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY);
+ return 0;
+ }
+
ossl_statem_set_in_init(s, 1);
s->key_update = updatetype;
return 1;
More information about the openssl-commits
mailing list