Stop using BIO_s_file_inernal() in libssl.
authortb <tb@openbsd.org>
Mon, 29 Nov 2021 18:36:27 +0000 (18:36 +0000)
committertb <tb@openbsd.org>
Mon, 29 Nov 2021 18:36:27 +0000 (18:36 +0000)
BIO_s_file_internal() should never have leaked out of libcrypto,
but it did. As a first step of getting rid of it, stop using it
internally.

ok jsing

lib/libssl/ssl_cert.c
lib/libssl/ssl_rsa.c
lib/libssl/ssl_txt.c

index e7de319..3b38820 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_cert.c,v 1.87 2021/11/26 16:41:42 tb Exp $ */
+/* $OpenBSD: ssl_cert.c,v 1.88 2021/11/29 18:36:27 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -584,7 +584,7 @@ SSL_load_client_CA_file(const char *file)
 
        sk = sk_X509_NAME_new(xname_cmp);
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
 
        if ((sk == NULL) || (in == NULL)) {
                SSLerrorx(ERR_R_MALLOC_FAILURE);
@@ -653,7 +653,7 @@ SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
 
        oldcmp = sk_X509_NAME_set_cmp_func(stack, xname_cmp);
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
 
        if (in == NULL) {
                SSLerrorx(ERR_R_MALLOC_FAILURE);
index eb60c2a..e25b938 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_rsa.c,v 1.36 2021/11/26 16:40:02 tb Exp $ */
+/* $OpenBSD: ssl_rsa.c,v 1.37 2021/11/29 18:36:27 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -91,7 +91,7 @@ SSL_use_certificate_file(SSL *ssl, const char *file, int type)
        int ret = 0;
        X509 *x = NULL;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerror(ssl, ERR_R_BUF_LIB);
                goto end;
@@ -214,7 +214,7 @@ SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type)
        BIO *in;
        RSA *rsa = NULL;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerror(ssl, ERR_R_BUF_LIB);
                goto end;
@@ -283,7 +283,7 @@ SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type)
        BIO *in;
        EVP_PKEY *pkey = NULL;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerror(ssl, ERR_R_BUF_LIB);
                goto end;
@@ -406,7 +406,7 @@ SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type)
        int ret = 0;
        X509 *x = NULL;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerrorx(ERR_R_BUF_LIB);
                goto end;
@@ -487,7 +487,7 @@ SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type)
        BIO *in;
        RSA *rsa = NULL;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerrorx(ERR_R_BUF_LIB);
                goto end;
@@ -553,7 +553,7 @@ SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type)
        BIO *in;
        EVP_PKEY *pkey = NULL;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerrorx(ERR_R_BUF_LIB);
                goto end;
@@ -659,7 +659,7 @@ use_certificate_chain_file(const char *file, CERT *cert,
        BIO *in;
        int ret = 0;
 
-       in = BIO_new(BIO_s_file_internal());
+       in = BIO_new(BIO_s_file());
        if (in == NULL) {
                SSLerrorx(ERR_R_BUF_LIB);
                goto end;
index e06808a..72ce1a0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_txt.c,v 1.30 2021/10/23 08:13:02 jsing Exp $ */
+/* $OpenBSD: ssl_txt.c,v 1.31 2021/11/29 18:36:27 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -94,7 +94,7 @@ SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x)
        BIO *b;
        int ret;
 
-       if ((b = BIO_new(BIO_s_file_internal())) == NULL) {
+       if ((b = BIO_new(BIO_s_file())) == NULL) {
                SSLerrorx(ERR_R_BUF_LIB);
                return (0);
        }