diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-05-14 21:39:46 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-05-14 21:42:28 +0200 |
commit | bb31860b6e034e99d75173ed39e72e2b3a6ebe66 (patch) | |
tree | c1ff24cbd587eea3b8f583780010fc055a7d0897 | |
parent | 3cc7043df62cf20f908316fefdc065e946eebfa3 (diff) | |
download | gnutls-bb31860b6e034e99d75173ed39e72e2b3a6ebe66.tar.gz |
Check all memory allocation in examples and certtooltmp-check-allocations
Resolves: #739
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-rw-r--r-- | doc/examples/ex-verify.c | 1 | ||||
-rw-r--r-- | doc/examples/tlsproxy/buffer.c | 2 | ||||
-rw-r--r-- | doc/examples/tlsproxy/crypto-gnutls.c | 2 | ||||
-rw-r--r-- | src/certtool-cfg.c | 9 |
4 files changed, 14 insertions, 0 deletions
diff --git a/doc/examples/ex-verify.c b/doc/examples/ex-verify.c index 0aa9922f81..623198793b 100644 --- a/doc/examples/ex-verify.c +++ b/doc/examples/ex-verify.c @@ -55,6 +55,7 @@ verify_certificate_chain(const char *hostname, GNUTLS_TL_VERIFY_CRL, 0)); cert = malloc(sizeof(*cert) * cert_chain_length); + assert(cert != NULL); /* Import all the certificates in the chain to * native certificate format. diff --git a/doc/examples/tlsproxy/buffer.c b/doc/examples/tlsproxy/buffer.c index cd1ff37eea..05c82121fe 100644 --- a/doc/examples/tlsproxy/buffer.c +++ b/doc/examples/tlsproxy/buffer.c @@ -80,6 +80,8 @@ buffer_t * bufNew (ssize_t size, ssize_t hwm) { buffer_t *b = calloc (1, sizeof (buffer_t)); + if (!b) return NULL; + b->buf = calloc (1, size); b->size = size; b->hwm = hwm; diff --git a/doc/examples/tlsproxy/crypto-gnutls.c b/doc/examples/tlsproxy/crypto-gnutls.c index 634f417b42..0764fdf10f 100644 --- a/doc/examples/tlsproxy/crypto-gnutls.c +++ b/doc/examples/tlsproxy/crypto-gnutls.c @@ -178,6 +178,8 @@ tlssession_new (int isserver, { int ret; tlssession_t *s = calloc (1, sizeof (tlssession_t)); + if (!s) + return NULL; if (quitfn) s->quitfn = quitfn; diff --git a/src/certtool-cfg.c b/src/certtool-cfg.c index 3cf9aef55f..8e8b8b59c8 100644 --- a/src/certtool-cfg.c +++ b/src/certtool-cfg.c @@ -65,6 +65,12 @@ extern int ask_pass; #define MAX_ENTRIES 128 #define MAX_POLICIES 8 +#define CHECK_MALLOC(x) \ + if (x == NULL) { \ + fprintf(stderr, "memory error\n"); \ + exit(1); \ + } + #define PRINT_TIME_T_ERROR \ if (sizeof(time_t) < 8) \ fprintf(stderr, "This system expresses time with a 32-bit time_t; that prevents dates after 2038 to be expressed by GnuTLS.\n") @@ -245,6 +251,7 @@ void cfg_init(void) if (s_name == NULL) { \ i = 0; \ s_name = malloc(sizeof(char*)*MAX_ENTRIES); \ + CHECK_MALLOC(s_name); \ do { \ if (val && strcmp(val->pzName, name)!=0) \ continue; \ @@ -266,10 +273,12 @@ void cfg_init(void) if (s_name == NULL) { \ i = 0; \ s_name = malloc(sizeof(char*)*MAX_ENTRIES); \ + CHECK_MALLOC(s_name); \ do { \ if (val && strcmp(val->pzName, name)!=0) \ continue; \ str = strdup(val->v.strVal); \ + CHECK_MALLOC(str); \ if ((p=strchr(str, ' ')) == NULL && (p=strchr(str, '\t')) == NULL) { \ fprintf(stderr, "Error parsing %s\n", name); \ exit(1); \ |