mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-10 05:30:51 +02:00
F-5760 - Only free standalone BIOs in ssl_set_bio to avoid chained free UAF
This commit is contained in:
@@ -6203,16 +6203,16 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
* a chain */
|
||||
if ((flags & WOLFSSL_BIO_FLAG_READ) && (ssl->biord != NULL)) {
|
||||
if ((flags & WOLFSSL_BIO_FLAG_WRITE) && (ssl->biord != ssl->biowr)) {
|
||||
if (ssl->biowr != NULL && ssl->biowr->prev != NULL)
|
||||
if (ssl->biowr != NULL && ssl->biowr->prev == NULL)
|
||||
wolfSSL_BIO_free(ssl->biowr);
|
||||
ssl->biowr = NULL;
|
||||
}
|
||||
if (ssl->biord->prev != NULL)
|
||||
if (ssl->biord->prev == NULL)
|
||||
wolfSSL_BIO_free(ssl->biord);
|
||||
ssl->biord = NULL;
|
||||
}
|
||||
else if ((flags & WOLFSSL_BIO_FLAG_WRITE) && (ssl->biowr != NULL)) {
|
||||
if (ssl->biowr->prev != NULL)
|
||||
if (ssl->biowr->prev == NULL)
|
||||
wolfSSL_BIO_free(ssl->biowr);
|
||||
ssl->biowr = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user