Commit cb1d435c authored by J Mohan Rao Arisankala's avatar J Mohan Rao Arisankala Committed by Matt Caswell
Browse files

few missing allocation failure checks and releases on error paths



- Missing checks for allocation failure.
- releasing memory in few missing error paths

Reviewed-by: default avatarKurt Roeckx <kurt@openssl.org>
Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
parent 5cf14ce0
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -83,8 +83,10 @@ BIO_ADDR *BIO_ADDR_new(void)
{
    BIO_ADDR *ret = OPENSSL_zalloc(sizeof(*ret));

    if (ret == NULL)
    if (ret == NULL) {
        BIOerr(BIO_F_BIO_ADDR_NEW, ERR_R_MALLOC_FAILURE);
        return NULL;
    }

    ret->sa.sa_family = AF_UNSPEC;
    return ret;
+2 −6
Original line number Diff line number Diff line
/*
 * Generated by util/mkerr.pl DO NOT EDIT
 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
 *
 * Licensed under the OpenSSL license (the "License").  You may not use
@@ -7,12 +8,6 @@
 * https://www.openssl.org/source/license.html
 */

/*
 * NOTE: this file was auto generated by the mkerr.pl script: any changes
 * made to it will be overwritten when the script next updates this file,
 * only reason strings will be preserved.
 */

#include <stdio.h>
#include <openssl/err.h>
#include <openssl/bio.h>
@@ -28,6 +23,7 @@ static ERR_STRING_DATA BIO_str_functs[] = {
    {ERR_FUNC(BIO_F_ADDR_STRINGS), "addr_strings"},
    {ERR_FUNC(BIO_F_BIO_ACCEPT), "BIO_accept"},
    {ERR_FUNC(BIO_F_BIO_ACCEPT_EX), "BIO_accept_ex"},
    {ERR_FUNC(BIO_F_BIO_ADDR_NEW), "BIO_ADDR_new"},
    {ERR_FUNC(BIO_F_BIO_BER_GET_HEADER), "BIO_BER_GET_HEADER"},
    {ERR_FUNC(BIO_F_BIO_CALLBACK_CTRL), "BIO_callback_ctrl"},
    {ERR_FUNC(BIO_F_BIO_CONNECT), "BIO_connect"},
+1 −0
Original line number Diff line number Diff line
@@ -166,6 +166,7 @@ EC_KEY *EC_KEY_new_method(ENGINE *engine)
    ret->references = 1;

    if (ret->meth->init != NULL && ret->meth->init(ret) == 0) {
        ECerr(EC_F_EC_KEY_NEW_METHOD, ERR_R_INIT_FAIL);
        EC_KEY_free(ret);
        return NULL;
    }
+6 −1
Original line number Diff line number Diff line
@@ -118,10 +118,15 @@ static int b64_new(BIO *bi)

    ctx = OPENSSL_zalloc(sizeof(*ctx));
    if (ctx == NULL)
        return (0);
        return 0;

    ctx->cont = 1;
    ctx->start = 1;
    if (ctx->base64 == NULL) {
        OPENSSL_free(ctx);
        return 0;
    }

    ctx->base64 = EVP_ENCODE_CTX_new();
    BIO_set_data(bi, ctx);
    BIO_set_init(bi, 1);
+4 −0
Original line number Diff line number Diff line
@@ -183,6 +183,10 @@ static int ok_new(BIO *bi)
    ctx->cont = 1;
    ctx->sigio = 1;
    ctx->md = EVP_MD_CTX_new();
    if (ctx->md == NULL) {
        OPENSSL_free(ctx);
        return 0;
    }
    BIO_set_init(bi, 0);
    BIO_set_data(bi, ctx);

Loading