提交 aabe3a35 编写于 作者: M Matt Caswell

Fix return code in tls1_mac

The return code from tls1_mac is supposed to be a boolean 0 for fail, 1 for
success. In one place we returned -1 on error. This would cause code calling
the mac function to erroneously see this as a success (because a non-zero
value is being treated as success in all call sites).

Fortunately, AFAICT, the place that returns -1 can only happen on an
internal error so is not under attacker control. Additionally this code only
appears in master. In 1.1.0 the return codes are treated differently.
Therefore there are no security implications.
Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3495)
上级 ffbaf06a
...@@ -1225,7 +1225,7 @@ int tls1_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int sending) ...@@ -1225,7 +1225,7 @@ int tls1_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int sending)
ssl->s3->read_mac_secret, ssl->s3->read_mac_secret,
ssl->s3->read_mac_secret_size, 0) <= 0) { ssl->s3->read_mac_secret_size, 0) <= 0) {
EVP_MD_CTX_free(hmac); EVP_MD_CTX_free(hmac);
return -1; return 0;
} }
} else { } else {
/* TODO(size_t): Convert these calls */ /* TODO(size_t): Convert these calls */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册