X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fbio%2Fbio_lib.c;h=cc859da74012e25adb220c9d75dfd4e1e181e29b;hp=19cd06983f06c0da7ca8bfe23bdcc4a5ea40cc3d;hb=aec54108ef0d469964505ac1f77984f19099ec05;hpb=5d80fab086fe8849222613e20d7cf61839f94f5f diff --git a/crypto/bio/bio_lib.c b/crypto/bio/bio_lib.c index 19cd06983f..cc859da740 100644 --- a/crypto/bio/bio_lib.c +++ b/crypto/bio/bio_lib.c @@ -535,8 +535,10 @@ BIO *BIO_dup_chain(BIO *in) /* copy app data */ if (!CRYPTO_dup_ex_data(CRYPTO_EX_INDEX_BIO, &new_bio->ex_data, - &bio->ex_data)) + &bio->ex_data)) { + BIO_free(new_bio); goto err; + } if (ret == NULL) { eoc = new_bio; @@ -548,7 +550,8 @@ BIO *BIO_dup_chain(BIO *in) } return (ret); err: - BIO_free(ret); + BIO_free_all(ret); + return (NULL); }