Fix last(?) batch of malloc-NULL places
Add a script to find them in the future Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/6103)
This commit is contained in:
parent
74a8acbdfb
commit
fe1128dc2a
12 changed files with 59 additions and 7 deletions
|
@ -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
|
||||
|
@ -18,6 +18,7 @@ static const ERR_STRING_DATA COMP_str_functs[] = {
|
|||
{ERR_PACK(ERR_LIB_COMP, COMP_F_BIO_ZLIB_NEW, 0), "bio_zlib_new"},
|
||||
{ERR_PACK(ERR_LIB_COMP, COMP_F_BIO_ZLIB_READ, 0), "bio_zlib_read"},
|
||||
{ERR_PACK(ERR_LIB_COMP, COMP_F_BIO_ZLIB_WRITE, 0), "bio_zlib_write"},
|
||||
{ERR_PACK(ERR_LIB_COMP, COMP_F_COMP_CTX_NEW, 0), "COMP_CTX_new"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -12,14 +12,17 @@
|
|||
#include <string.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/comp.h>
|
||||
#include <openssl/err.h>
|
||||
#include "comp_lcl.h"
|
||||
|
||||
COMP_CTX *COMP_CTX_new(COMP_METHOD *meth)
|
||||
{
|
||||
COMP_CTX *ret;
|
||||
|
||||
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL)
|
||||
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL) {
|
||||
COMPerr(COMP_F_COMP_CTX_NEW, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
ret->meth = meth;
|
||||
if ((ret->meth->init != NULL) && !ret->meth->init(ret)) {
|
||||
OPENSSL_free(ret);
|
||||
|
|
|
@ -40,11 +40,16 @@ static const ERR_STRING_DATA CRYPTO_str_functs[] = {
|
|||
"OPENSSL_hexstr2buf"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_INIT_CRYPTO, 0),
|
||||
"OPENSSL_init_crypto"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_LH_NEW, 0), "OPENSSL_LH_new"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_SK_DEEP_COPY, 0),
|
||||
"OPENSSL_sk_deep_copy"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_SK_DUP, 0), "OPENSSL_sk_dup"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_PKEY_HMAC_INIT, 0), "pkey_hmac_init"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_PKEY_POLY1305_INIT, 0),
|
||||
"pkey_poly1305_init"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_PKEY_SIPHASH_INIT, 0),
|
||||
"pkey_siphash_init"},
|
||||
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_SK_RESERVE, 0), "sk_reserve"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -320,6 +320,7 @@ COMP_F_BIO_ZLIB_FLUSH:99:bio_zlib_flush
|
|||
COMP_F_BIO_ZLIB_NEW:100:bio_zlib_new
|
||||
COMP_F_BIO_ZLIB_READ:101:bio_zlib_read
|
||||
COMP_F_BIO_ZLIB_WRITE:102:bio_zlib_write
|
||||
COMP_F_COMP_CTX_NEW:103:COMP_CTX_new
|
||||
CONF_F_CONF_DUMP_FP:104:CONF_dump_fp
|
||||
CONF_F_CONF_LOAD:100:CONF_load
|
||||
CONF_F_CONF_LOAD_FP:103:CONF_load_fp
|
||||
|
@ -359,9 +360,13 @@ CRYPTO_F_OPENSSL_BUF2HEXSTR:117:OPENSSL_buf2hexstr
|
|||
CRYPTO_F_OPENSSL_FOPEN:119:openssl_fopen
|
||||
CRYPTO_F_OPENSSL_HEXSTR2BUF:118:OPENSSL_hexstr2buf
|
||||
CRYPTO_F_OPENSSL_INIT_CRYPTO:116:OPENSSL_init_crypto
|
||||
CRYPTO_F_OPENSSL_LH_NEW:126:OPENSSL_LH_new
|
||||
CRYPTO_F_OPENSSL_SK_DEEP_COPY:127:OPENSSL_sk_deep_copy
|
||||
CRYPTO_F_OPENSSL_SK_DUP:128:OPENSSL_sk_dup
|
||||
CRYPTO_F_PKEY_HMAC_INIT:123:pkey_hmac_init
|
||||
CRYPTO_F_PKEY_POLY1305_INIT:124:pkey_poly1305_init
|
||||
CRYPTO_F_PKEY_SIPHASH_INIT:125:pkey_siphash_init
|
||||
CRYPTO_F_SK_RESERVE:129:sk_reserve
|
||||
CT_F_CTLOG_NEW:117:CTLOG_new
|
||||
CT_F_CTLOG_NEW_FROM_BASE64:118:CTLOG_new_from_base64
|
||||
CT_F_CTLOG_NEW_FROM_CONF:119:ctlog_new_from_conf
|
||||
|
@ -1101,6 +1106,7 @@ SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST:385:\
|
|||
dtls_construct_hello_verify_request
|
||||
SSL_F_DTLS_GET_REASSEMBLED_MESSAGE:370:dtls_get_reassembled_message
|
||||
SSL_F_DTLS_PROCESS_HELLO_VERIFY:386:dtls_process_hello_verify
|
||||
SSL_F_DTLS_RECORD_LAYER_NEW:635:DTLS_RECORD_LAYER_new
|
||||
SSL_F_DTLS_WAIT_FOR_DRY:592:dtls_wait_for_dry
|
||||
SSL_F_EARLY_DATA_COUNT_OK:532:early_data_count_ok
|
||||
SSL_F_FINAL_EARLY_DATA:556:final_early_data
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/err.h>
|
||||
#include "lhash_lcl.h"
|
||||
|
||||
/*
|
||||
|
@ -45,8 +46,14 @@ OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c)
|
|||
{
|
||||
OPENSSL_LHASH *ret;
|
||||
|
||||
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL)
|
||||
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL) {
|
||||
/*
|
||||
* Do not set the error code, because the ERR code uses LHASH
|
||||
* and we want to avoid possible endless error loop.
|
||||
* CRYPTOerr(CRYPTO_F_OPENSSL_LH_NEW, ERR_R_MALLOC_FAILURE);
|
||||
*/
|
||||
return NULL;
|
||||
}
|
||||
if ((ret->b = OPENSSL_zalloc(sizeof(*ret->b) * MIN_NODES)) == NULL)
|
||||
goto err;
|
||||
ret->comp = ((c == NULL) ? (OPENSSL_LH_COMPFUNC)strcmp : c);
|
||||
|
|
|
@ -46,8 +46,10 @@ OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *sk)
|
|||
{
|
||||
OPENSSL_STACK *ret;
|
||||
|
||||
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL)
|
||||
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL) {
|
||||
CRYPTOerr(CRYPTO_F_OPENSSL_SK_DUP, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* direct structure assignment */
|
||||
*ret = *sk;
|
||||
|
@ -75,8 +77,10 @@ OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *sk,
|
|||
OPENSSL_STACK *ret;
|
||||
int i;
|
||||
|
||||
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL)
|
||||
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL) {
|
||||
CRYPTOerr(CRYPTO_F_OPENSSL_SK_DEEP_COPY, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* direct structure assignment */
|
||||
*ret = *sk;
|
||||
|
@ -174,7 +178,7 @@ static int sk_reserve(OPENSSL_STACK *st, int n, int exact)
|
|||
* so |num_alloc| value is |n| or |min_nodes| if greater than |n|.
|
||||
*/
|
||||
if ((st->data = OPENSSL_zalloc(sizeof(void *) * num_alloc)) == NULL) {
|
||||
/* STACKerr(STACK_F_SK_RESERVE, ERR_R_MALLOC_FAILURE); */
|
||||
CRYPTOerr(CRYPTO_F_SK_RESERVE, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
st->num_alloc = num_alloc;
|
||||
|
|
|
@ -27,6 +27,7 @@ int ERR_load_COMP_strings(void);
|
|||
# define COMP_F_BIO_ZLIB_NEW 100
|
||||
# define COMP_F_BIO_ZLIB_READ 101
|
||||
# define COMP_F_BIO_ZLIB_WRITE 102
|
||||
# define COMP_F_COMP_CTX_NEW 103
|
||||
|
||||
/*
|
||||
* COMP reason codes.
|
||||
|
|
|
@ -35,9 +35,13 @@ int ERR_load_CRYPTO_strings(void);
|
|||
# define CRYPTO_F_OPENSSL_FOPEN 119
|
||||
# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118
|
||||
# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116
|
||||
# define CRYPTO_F_OPENSSL_LH_NEW 126
|
||||
# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 127
|
||||
# define CRYPTO_F_OPENSSL_SK_DUP 128
|
||||
# define CRYPTO_F_PKEY_HMAC_INIT 123
|
||||
# define CRYPTO_F_PKEY_POLY1305_INIT 124
|
||||
# define CRYPTO_F_PKEY_SIPHASH_INIT 125
|
||||
# define CRYPTO_F_SK_RESERVE 129
|
||||
|
||||
/*
|
||||
* CRYPTO reason codes.
|
||||
|
|
|
@ -55,6 +55,7 @@ int ERR_load_SSL_strings(void);
|
|||
# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385
|
||||
# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370
|
||||
# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386
|
||||
# define SSL_F_DTLS_RECORD_LAYER_NEW 635
|
||||
# define SSL_F_DTLS_WAIT_FOR_DRY 592
|
||||
# define SSL_F_EARLY_DATA_COUNT_OK 532
|
||||
# define SSL_F_FINAL_EARLY_DATA 556
|
||||
|
|
|
@ -20,8 +20,10 @@ int DTLS_RECORD_LAYER_new(RECORD_LAYER *rl)
|
|||
{
|
||||
DTLS_RECORD_LAYER *d;
|
||||
|
||||
if ((d = OPENSSL_malloc(sizeof(*d))) == NULL)
|
||||
if ((d = OPENSSL_malloc(sizeof(*d))) == NULL) {
|
||||
SSLerr(SSL_F_DTLS_RECORD_LAYER_NEW, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
rl->d = d;
|
||||
|
||||
|
|
|
@ -67,6 +67,8 @@ static const ERR_STRING_DATA SSL_str_functs[] = {
|
|||
"dtls_get_reassembled_message"},
|
||||
{ERR_PACK(ERR_LIB_SSL, SSL_F_DTLS_PROCESS_HELLO_VERIFY, 0),
|
||||
"dtls_process_hello_verify"},
|
||||
{ERR_PACK(ERR_LIB_SSL, SSL_F_DTLS_RECORD_LAYER_NEW, 0),
|
||||
"DTLS_RECORD_LAYER_new"},
|
||||
{ERR_PACK(ERR_LIB_SSL, SSL_F_DTLS_WAIT_FOR_DRY, 0), "dtls_wait_for_dry"},
|
||||
{ERR_PACK(ERR_LIB_SSL, SSL_F_EARLY_DATA_COUNT_OK, 0),
|
||||
"early_data_count_ok"},
|
||||
|
|
16
util/check-malloc-errs
Executable file
16
util/check-malloc-errs
Executable file
|
@ -0,0 +1,16 @@
|
|||
#! /bin/sh
|
||||
# Copyright 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
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
(
|
||||
pcregrep -rnM 'OPENSSL_.?alloc.*\n.*if.*NULL.*\n.*return' crypto ssl
|
||||
pcregrep -rnM 'if.*OPENSSL_.?alloc.*NULL.*\n.*.*return' crypto ssl
|
||||
) | tee /tmp/out$$
|
||||
X=0
|
||||
test -s /tmp/out$$ && X=1
|
||||
rm /tmp/out$$
|
||||
exit $X
|
Loading…
Reference in a new issue