X Tutup
Skip to content

Commit fe1128d

Browse files
author
Rich Salz
committed
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 openssl#6103)
1 parent 74a8acb commit fe1128d

File tree

12 files changed

+59
-7
lines changed

12 files changed

+59
-7
lines changed

crypto/comp/comp_err.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Generated by util/mkerr.pl DO NOT EDIT
3-
* Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
3+
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
44
*
55
* Licensed under the OpenSSL license (the "License"). You may not use
66
* 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[] = {
1818
{ERR_PACK(ERR_LIB_COMP, COMP_F_BIO_ZLIB_NEW, 0), "bio_zlib_new"},
1919
{ERR_PACK(ERR_LIB_COMP, COMP_F_BIO_ZLIB_READ, 0), "bio_zlib_read"},
2020
{ERR_PACK(ERR_LIB_COMP, COMP_F_BIO_ZLIB_WRITE, 0), "bio_zlib_write"},
21+
{ERR_PACK(ERR_LIB_COMP, COMP_F_COMP_CTX_NEW, 0), "COMP_CTX_new"},
2122
{0, NULL}
2223
};
2324

crypto/comp/comp_lib.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,17 @@
1212
#include <string.h>
1313
#include <openssl/objects.h>
1414
#include <openssl/comp.h>
15+
#include <openssl/err.h>
1516
#include "comp_lcl.h"
1617

1718
COMP_CTX *COMP_CTX_new(COMP_METHOD *meth)
1819
{
1920
COMP_CTX *ret;
2021

21-
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL)
22+
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL) {
23+
COMPerr(COMP_F_COMP_CTX_NEW, ERR_R_MALLOC_FAILURE);
2224
return NULL;
25+
}
2326
ret->meth = meth;
2427
if ((ret->meth->init != NULL) && !ret->meth->init(ret)) {
2528
OPENSSL_free(ret);

crypto/cpt_err.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,16 @@ static const ERR_STRING_DATA CRYPTO_str_functs[] = {
4040
"OPENSSL_hexstr2buf"},
4141
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_INIT_CRYPTO, 0),
4242
"OPENSSL_init_crypto"},
43+
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_LH_NEW, 0), "OPENSSL_LH_new"},
44+
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_SK_DEEP_COPY, 0),
45+
"OPENSSL_sk_deep_copy"},
46+
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_OPENSSL_SK_DUP, 0), "OPENSSL_sk_dup"},
4347
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_PKEY_HMAC_INIT, 0), "pkey_hmac_init"},
4448
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_PKEY_POLY1305_INIT, 0),
4549
"pkey_poly1305_init"},
4650
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_PKEY_SIPHASH_INIT, 0),
4751
"pkey_siphash_init"},
52+
{ERR_PACK(ERR_LIB_CRYPTO, CRYPTO_F_SK_RESERVE, 0), "sk_reserve"},
4853
{0, NULL}
4954
};
5055

crypto/err/openssl.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ COMP_F_BIO_ZLIB_FLUSH:99:bio_zlib_flush
320320
COMP_F_BIO_ZLIB_NEW:100:bio_zlib_new
321321
COMP_F_BIO_ZLIB_READ:101:bio_zlib_read
322322
COMP_F_BIO_ZLIB_WRITE:102:bio_zlib_write
323+
COMP_F_COMP_CTX_NEW:103:COMP_CTX_new
323324
CONF_F_CONF_DUMP_FP:104:CONF_dump_fp
324325
CONF_F_CONF_LOAD:100:CONF_load
325326
CONF_F_CONF_LOAD_FP:103:CONF_load_fp
@@ -359,9 +360,13 @@ CRYPTO_F_OPENSSL_BUF2HEXSTR:117:OPENSSL_buf2hexstr
359360
CRYPTO_F_OPENSSL_FOPEN:119:openssl_fopen
360361
CRYPTO_F_OPENSSL_HEXSTR2BUF:118:OPENSSL_hexstr2buf
361362
CRYPTO_F_OPENSSL_INIT_CRYPTO:116:OPENSSL_init_crypto
363+
CRYPTO_F_OPENSSL_LH_NEW:126:OPENSSL_LH_new
364+
CRYPTO_F_OPENSSL_SK_DEEP_COPY:127:OPENSSL_sk_deep_copy
365+
CRYPTO_F_OPENSSL_SK_DUP:128:OPENSSL_sk_dup
362366
CRYPTO_F_PKEY_HMAC_INIT:123:pkey_hmac_init
363367
CRYPTO_F_PKEY_POLY1305_INIT:124:pkey_poly1305_init
364368
CRYPTO_F_PKEY_SIPHASH_INIT:125:pkey_siphash_init
369+
CRYPTO_F_SK_RESERVE:129:sk_reserve
365370
CT_F_CTLOG_NEW:117:CTLOG_new
366371
CT_F_CTLOG_NEW_FROM_BASE64:118:CTLOG_new_from_base64
367372
CT_F_CTLOG_NEW_FROM_CONF:119:ctlog_new_from_conf
@@ -1101,6 +1106,7 @@ SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST:385:\
11011106
dtls_construct_hello_verify_request
11021107
SSL_F_DTLS_GET_REASSEMBLED_MESSAGE:370:dtls_get_reassembled_message
11031108
SSL_F_DTLS_PROCESS_HELLO_VERIFY:386:dtls_process_hello_verify
1109+
SSL_F_DTLS_RECORD_LAYER_NEW:635:DTLS_RECORD_LAYER_new
11041110
SSL_F_DTLS_WAIT_FOR_DRY:592:dtls_wait_for_dry
11051111
SSL_F_EARLY_DATA_COUNT_OK:532:early_data_count_ok
11061112
SSL_F_FINAL_EARLY_DATA:556:final_early_data

crypto/lhash/lhash.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <stdlib.h>
1313
#include <openssl/crypto.h>
1414
#include <openssl/lhash.h>
15+
#include <openssl/err.h>
1516
#include "lhash_lcl.h"
1617

1718
/*
@@ -45,8 +46,14 @@ OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c)
4546
{
4647
OPENSSL_LHASH *ret;
4748

48-
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL)
49+
if ((ret = OPENSSL_zalloc(sizeof(*ret))) == NULL) {
50+
/*
51+
* Do not set the error code, because the ERR code uses LHASH
52+
* and we want to avoid possible endless error loop.
53+
* CRYPTOerr(CRYPTO_F_OPENSSL_LH_NEW, ERR_R_MALLOC_FAILURE);
54+
*/
4955
return NULL;
56+
}
5057
if ((ret->b = OPENSSL_zalloc(sizeof(*ret->b) * MIN_NODES)) == NULL)
5158
goto err;
5259
ret->comp = ((c == NULL) ? (OPENSSL_LH_COMPFUNC)strcmp : c);

crypto/stack/stack.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *sk)
4646
{
4747
OPENSSL_STACK *ret;
4848

49-
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL)
49+
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL) {
50+
CRYPTOerr(CRYPTO_F_OPENSSL_SK_DUP, ERR_R_MALLOC_FAILURE);
5051
return NULL;
52+
}
5153

5254
/* direct structure assignment */
5355
*ret = *sk;
@@ -75,8 +77,10 @@ OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *sk,
7577
OPENSSL_STACK *ret;
7678
int i;
7779

78-
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL)
80+
if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL) {
81+
CRYPTOerr(CRYPTO_F_OPENSSL_SK_DEEP_COPY, ERR_R_MALLOC_FAILURE);
7982
return NULL;
83+
}
8084

8185
/* direct structure assignment */
8286
*ret = *sk;
@@ -174,7 +178,7 @@ static int sk_reserve(OPENSSL_STACK *st, int n, int exact)
174178
* so |num_alloc| value is |n| or |min_nodes| if greater than |n|.
175179
*/
176180
if ((st->data = OPENSSL_zalloc(sizeof(void *) * num_alloc)) == NULL) {
177-
/* STACKerr(STACK_F_SK_RESERVE, ERR_R_MALLOC_FAILURE); */
181+
CRYPTOerr(CRYPTO_F_SK_RESERVE, ERR_R_MALLOC_FAILURE);
178182
return 0;
179183
}
180184
st->num_alloc = num_alloc;

include/openssl/comperr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ int ERR_load_COMP_strings(void);
2727
# define COMP_F_BIO_ZLIB_NEW 100
2828
# define COMP_F_BIO_ZLIB_READ 101
2929
# define COMP_F_BIO_ZLIB_WRITE 102
30+
# define COMP_F_COMP_CTX_NEW 103
3031

3132
/*
3233
* COMP reason codes.

include/openssl/cryptoerr.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,13 @@ int ERR_load_CRYPTO_strings(void);
3535
# define CRYPTO_F_OPENSSL_FOPEN 119
3636
# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118
3737
# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116
38+
# define CRYPTO_F_OPENSSL_LH_NEW 126
39+
# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 127
40+
# define CRYPTO_F_OPENSSL_SK_DUP 128
3841
# define CRYPTO_F_PKEY_HMAC_INIT 123
3942
# define CRYPTO_F_PKEY_POLY1305_INIT 124
4043
# define CRYPTO_F_PKEY_SIPHASH_INIT 125
44+
# define CRYPTO_F_SK_RESERVE 129
4145

4246
/*
4347
* CRYPTO reason codes.

include/openssl/sslerr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ int ERR_load_SSL_strings(void);
5555
# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385
5656
# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370
5757
# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386
58+
# define SSL_F_DTLS_RECORD_LAYER_NEW 635
5859
# define SSL_F_DTLS_WAIT_FOR_DRY 592
5960
# define SSL_F_EARLY_DATA_COUNT_OK 532
6061
# define SSL_F_FINAL_EARLY_DATA 556

ssl/record/rec_layer_d1.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ int DTLS_RECORD_LAYER_new(RECORD_LAYER *rl)
2020
{
2121
DTLS_RECORD_LAYER *d;
2222

23-
if ((d = OPENSSL_malloc(sizeof(*d))) == NULL)
23+
if ((d = OPENSSL_malloc(sizeof(*d))) == NULL) {
24+
SSLerr(SSL_F_DTLS_RECORD_LAYER_NEW, ERR_R_MALLOC_FAILURE);
2425
return 0;
26+
}
2527

2628
rl->d = d;
2729

0 commit comments

Comments
 (0)
X Tutup