[openssl-commits] [openssl] master update
Rich Salz
rsalz at openssl.org
Sat Feb 10 19:11:46 UTC 2018
The branch master has been updated
via 6dbe4dc4752484e1628e854dce46ef48faaf3384 (commit)
from 4e0752535eb87b9aab4cf193f4422b5801ab7b32 (commit)
- Log -----------------------------------------------------------------
commit 6dbe4dc4752484e1628e854dce46ef48faaf3384
Author: Rich Salz <rsalz at openssl.org>
Date: Sat Feb 10 13:36:47 2018 -0500
Copy name string in BIO_meth_new
Reviewed-by: Richard Levitte <levitte at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5318)
-----------------------------------------------------------------------
Summary of changes:
crypto/bio/bio_err.c | 3 ++-
crypto/bio/bio_meth.c | 14 ++++++++++----
crypto/err/openssl.txt | 1 +
include/internal/bio.h | 2 +-
include/openssl/bioerr.h | 1 +
5 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/crypto/bio/bio_err.c b/crypto/bio/bio_err.c
index 50fc74b..20f3aa1 100644
--- a/crypto/bio/bio_err.c
+++ b/crypto/bio/bio_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -30,6 +30,7 @@ static const ERR_STRING_DATA BIO_str_functs[] = {
{ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_LOOKUP, 0), "BIO_lookup"},
{ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_LOOKUP_EX, 0), "BIO_lookup_ex"},
{ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_MAKE_PAIR, 0), "bio_make_pair"},
+ {ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_METH_NEW, 0), "BIO_meth_new"},
{ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_NEW, 0), "BIO_new"},
{ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_NEW_DGRAM_SCTP, 0), "BIO_new_dgram_sctp"},
{ERR_PACK(ERR_LIB_BIO, BIO_F_BIO_NEW_FILE, 0), "BIO_new_file"},
diff --git a/crypto/bio/bio_meth.c b/crypto/bio/bio_meth.c
index 1c5d196..a1fff14 100644
--- a/crypto/bio/bio_meth.c
+++ b/crypto/bio/bio_meth.c
@@ -37,16 +37,22 @@ BIO_METHOD *BIO_meth_new(int type, const char *name)
{
BIO_METHOD *biom = OPENSSL_zalloc(sizeof(BIO_METHOD));
- if (biom != NULL) {
- biom->type = type;
- biom->name = name;
+ if (biom == NULL
+ || (biom->name = OPENSSL_strdup(name)) == NULL) {
+ OPENSSL_free(biom);
+ BIOerr(BIO_F_BIO_METH_NEW, ERR_R_MALLOC_FAILURE);
+ return NULL;
}
+ biom->type = type;
return biom;
}
void BIO_meth_free(BIO_METHOD *biom)
{
- OPENSSL_free(biom);
+ if (biom != NULL) {
+ OPENSSL_free(biom->name);
+ OPENSSL_free(biom);
+ }
}
int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int)
diff --git a/crypto/err/openssl.txt b/crypto/err/openssl.txt
index fb3be57..3ed71fe 100644
--- a/crypto/err/openssl.txt
+++ b/crypto/err/openssl.txt
@@ -127,6 +127,7 @@ BIO_F_BIO_LISTEN:139:BIO_listen
BIO_F_BIO_LOOKUP:135:BIO_lookup
BIO_F_BIO_LOOKUP_EX:143:BIO_lookup_ex
BIO_F_BIO_MAKE_PAIR:121:bio_make_pair
+BIO_F_BIO_METH_NEW:146:BIO_meth_new
BIO_F_BIO_NEW:108:BIO_new
BIO_F_BIO_NEW_DGRAM_SCTP:145:BIO_new_dgram_sctp
BIO_F_BIO_NEW_FILE:109:BIO_new_file
diff --git a/include/internal/bio.h b/include/internal/bio.h
index 4428947..5334d48 100644
--- a/include/internal/bio.h
+++ b/include/internal/bio.h
@@ -11,7 +11,7 @@
struct bio_method_st {
int type;
- const char *name;
+ char *name;
int (*bwrite) (BIO *, const char *, size_t, size_t *);
int (*bwrite_old) (BIO *, const char *, int);
int (*bread) (BIO *, char *, size_t, size_t *);
diff --git a/include/openssl/bioerr.h b/include/openssl/bioerr.h
index b0dee2b..7a552d6 100644
--- a/include/openssl/bioerr.h
+++ b/include/openssl/bioerr.h
@@ -35,6 +35,7 @@ int ERR_load_BIO_strings(void);
# define BIO_F_BIO_LOOKUP 135
# define BIO_F_BIO_LOOKUP_EX 143
# define BIO_F_BIO_MAKE_PAIR 121
+# define BIO_F_BIO_METH_NEW 146
# define BIO_F_BIO_NEW 108
# define BIO_F_BIO_NEW_DGRAM_SCTP 145
# define BIO_F_BIO_NEW_FILE 109
More information about the openssl-commits
mailing list