From 86f31dd9cc81d1c2429846ab663ecd8a29333e3b Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Wed, 21 Jun 2017 15:52:11 +0100 Subject: [PATCH] Remove OPENSSL_assert() from various crypto/bio files bss_dgram.c is deferred until later due to ongoing discussions. Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/3740) --- crypto/bio/b_addr.c | 11 ++++++++--- crypto/bio/b_print.c | 9 ++++++--- crypto/bio/b_sock.c | 15 +++++++-------- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/crypto/bio/b_addr.c b/crypto/bio/b_addr.c index b8e1f96e07..d3b758fc7a 100644 --- a/crypto/bio/b_addr.c +++ b/crypto/bio/b_addr.c @@ -7,6 +7,7 @@ * https://www.openssl.org/source/license.html */ +#include #include #include "bio_lcl.h" @@ -565,7 +566,8 @@ static int addrinfo_wrap(int family, int socktype, unsigned short port, BIO_ADDRINFO **bai) { - OPENSSL_assert(bai != NULL); + if (bai == NULL) + return 0; *bai = OPENSSL_zalloc(sizeof(**bai)); if (*bai == NULL) @@ -760,8 +762,11 @@ int BIO_lookup_ex(const char *host, const char *service, int lookup_type, he_fallback_address = INADDR_ANY; break; default: - OPENSSL_assert(("We forgot to handle a lookup type!" == 0)); - break; + /* We forgot to handle a lookup type! */ + assert("We forgot to handle a lookup type!" == NULL); + BIOerr(BIO_F_BIO_LOOKUP_EX, ERR_R_INTERNAL_ERROR); + ret = 0; + goto err; } } else { he = gethostbyname(host); diff --git a/crypto/bio/b_print.c b/crypto/bio/b_print.c index a7741f0915..bca586da84 100644 --- a/crypto/bio/b_print.c +++ b/crypto/bio/b_print.c @@ -806,10 +806,12 @@ doapr_outch(char **sbuffer, char **buffer, size_t *currlen, size_t *maxlen, int c) { /* If we haven't at least one buffer, someone has doe a big booboo */ - OPENSSL_assert(*sbuffer != NULL || buffer != NULL); + if (!ossl_assert(*sbuffer != NULL || buffer != NULL)) + return 0; /* |currlen| must always be <= |*maxlen| */ - OPENSSL_assert(*currlen <= *maxlen); + if (!ossl_assert(*currlen <= *maxlen)) + return 0; if (buffer && *currlen == *maxlen) { if (*maxlen > INT_MAX - BUFFER_INC) @@ -821,7 +823,8 @@ doapr_outch(char **sbuffer, if (*buffer == NULL) return 0; if (*currlen > 0) { - OPENSSL_assert(*sbuffer != NULL); + if (!ossl_assert(*sbuffer != NULL)) + return 0; memcpy(*buffer, *sbuffer, *currlen); } *sbuffer = NULL; diff --git a/crypto/bio/b_sock.c b/crypto/bio/b_sock.c index 97dcc7005e..65339629f8 100644 --- a/crypto/bio/b_sock.c +++ b/crypto/bio/b_sock.c @@ -43,14 +43,13 @@ int BIO_get_host_ip(const char *str, unsigned char *ip) if (BIO_ADDRINFO_family(res) != AF_INET) { BIOerr(BIO_F_BIO_GET_HOST_IP, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET); - } else { - BIO_ADDR_rawaddress(BIO_ADDRINFO_address(res), NULL, &l); - /* Because only AF_INET addresses will reach this far, - we can assert that l should be 4 */ - OPENSSL_assert(l == 4); - - BIO_ADDR_rawaddress(BIO_ADDRINFO_address(res), ip, &l); - ret = 1; + } else if (BIO_ADDR_rawaddress(BIO_ADDRINFO_address(res), NULL, &l)) { + /* + * Because only AF_INET addresses will reach this far, we can assert + * that l should be 4 + */ + if (ossl_assert(l == 4)) + ret = BIO_ADDR_rawaddress(BIO_ADDRINFO_address(res), ip, &l); } BIO_ADDRINFO_free(res); } else { -- 2.25.1