openssl/ssl
Matt Caswell 7cccecc0b6 Don't attempt to duplicate the BIO state in SSL_dup
SSL_dup attempted to duplicate the BIO state if the source SSL had BIOs
configured for it. This did not work.

Firstly the SSL_dup code was passing a BIO ** as the destination
argument for BIO_dup_state. However BIO_dup_state expects a BIO * for that
parameter. Any attempt to use this will either (1) fail silently, (2) crash
or fail in some other strange way.

Secondly many BIOs do not implement the BIO_CTRL_DUP ctrl required to make
this work.

Thirdly, if rbio == wbio in the original SSL object, then an attempt is made
to up-ref the BIO in the new SSL object - even though it hasn't been set
yet and is NULL. This results in a crash.

This appears to have been broken for a very long time with at least some of
the problems described above coming from SSLeay. The simplest approach is
to just remove this capability from the function.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12180)
2020-06-23 12:46:47 +01:00
..
record TLSv13: add kTLS support 2020-06-08 11:13:53 +01:00
statem Fix the DTLS1_COOKIE_LENGTH value 2020-06-19 11:25:35 +01:00
bio_ssl.c Update copyright year 2020-05-15 14:09:49 +01:00
build.info
d1_lib.c
d1_msg.c
d1_srtp.c Update copyright year 2020-05-15 14:09:49 +01:00
methods.c
pqueue.c
s3_cbc.c Update copyright year 2020-04-23 13:55:52 +01:00
s3_enc.c Update copyright year 2020-04-23 13:55:52 +01:00
s3_lib.c Update the various SSL group getting and setting functions 2020-06-19 10:19:31 +01:00
s3_msg.c
ssl_asn1.c
ssl_cert_table.h
ssl_cert.c SSL: refactor ssl_cert_lookup_by_pkey() to work with provider side keys 2020-05-15 16:43:31 +02:00
ssl_ciph.c Add cipher list ciphersuites which using encryption algorithm in mode CBC. 2020-06-04 17:45:00 +03:00
ssl_conf.c SSL_OP_DISABLE_TLSEXT_CA_NAMES option implementation 2020-05-07 16:14:47 +03:00
ssl_err.c Provider a better error message if we fail to copy parameters 2020-06-19 10:19:32 +01:00
ssl_init.c Update copyright year 2020-04-23 13:55:52 +01:00
ssl_lib.c Don't attempt to duplicate the BIO state in SSL_dup 2020-06-23 12:46:47 +01:00
ssl_local.h Update the various SSL group getting and setting functions 2020-06-19 10:19:31 +01:00
ssl_mcnf.c
ssl_rsa.c Rename EVP_PKEY_cmp() to EVP_PKEY_eq() and EVP_PKEY_cmp_parameters() to EVP_PKEY_parameters_eq() 2020-05-27 14:36:13 +02:00
ssl_sess.c In OpenSSL builds, declare STACK for datatypes ... 2020-04-24 16:42:46 +02:00
ssl_stat.c
ssl_txt.c Update copyright year 2020-04-23 13:55:52 +01:00
ssl_utst.c
t1_enc.c kdf: make function naming consistent. 2020-06-11 11:14:21 +10:00
t1_lib.c Create defines for TLS Group Ids 2020-06-19 10:19:32 +01:00
t1_trce.c t1_trce: Fix remaining places where the 24 bit shift overflow happens 2020-05-20 17:31:56 +02:00
tls13_enc.c The EVP_MAC functions have been renamed for consistency. The EVP_MAC_CTX_* 2020-06-11 11:16:37 +10:00
tls_srp.c Update copyright year 2020-04-23 13:55:52 +01:00