commit f33a16a615ae2fd55f1fd7ddf8654a82bcca0228
parent a9438fbc33076485a08efbe5d3c0c7b59fb03dc0
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue, 21 Sep 2010 10:46:06 +0000
check malloc return values
Diffstat:
5 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/src/testcurl/daemontest_get_chunked.c b/src/testcurl/daemontest_get_chunked.c
@@ -111,6 +111,8 @@ ahc_echo (void *cls,
return MHD_YES;
}
responseptr = malloc (sizeof (struct MHD_Response *));
+ if (responseptr == NULL)
+ return MHD_NO;
response = MHD_create_response_from_callback (-1,
1024,
&crc, responseptr, &crcf);
diff --git a/src/testcurl/daemontest_large_put.c b/src/testcurl/daemontest_large_put.c
@@ -456,6 +456,7 @@ main (int argc, char *const *argv)
if (0 != curl_global_init (CURL_GLOBAL_WIN32))
return 2;
put_buffer = malloc (PUT_SIZE);
+ if (NULL == put_buffer) return 1;
memset (put_buffer, 1, PUT_SIZE);
errorCount += testInternalPut ();
errorCount += testMultithreadedPut ();
diff --git a/src/testcurl/daemontest_long_header.c b/src/testcurl/daemontest_long_header.c
@@ -112,6 +112,11 @@ testLongUrlGet ()
return 1;
c = curl_easy_init ();
url = malloc (VERY_LONG);
+ if (url == NULL)
+ {
+ MHD_stop_daemon (d);
+ return 1;
+ }
memset (url, 'a', VERY_LONG);
url[VERY_LONG - 1] = '\0';
memcpy (url, "http://localhost:1080/", strlen ("http://localhost:1080/"));
@@ -178,6 +183,11 @@ testLongHeaderGet ()
return 16;
c = curl_easy_init ();
url = malloc (VERY_LONG);
+ if (url == NULL)
+ {
+ MHD_stop_daemon (d);
+ return 16;
+ }
memset (url, 'a', VERY_LONG);
url[VERY_LONG - 1] = '\0';
url[VERY_LONG / 2] = ':';
diff --git a/src/testcurl/https/tls_extension_test.c b/src/testcurl/https/tls_extension_test.c
@@ -93,7 +93,11 @@ test_hello_extension (gnutls_session_t session, extensions_t exten_t,
datalen = 2 /* version */ + TLS_RANDOM_SIZE + (session_id_len + 1);
data = MHD_gnutls_malloc (datalen);
-
+ if (data == NULL)
+ {
+ free (cbc.buf);
+ return -1;
+ }
hver = MHD_gtls_version_max (session);
data[pos++] = MHD_gtls_version_get_major (hver);
data[pos++] = MHD_gtls_version_get_minor (hver);
diff --git a/src/testcurl/https/tls_test_common.c b/src/testcurl/https/tls_test_common.c
@@ -372,9 +372,18 @@ setup_session (gnutls_session_t * session,
gnutls_certificate_allocate_credentials (xcred);
key->size = strlen (srv_key_pem);
key->data = malloc (key->size);
+ if (key->data == NULL)
+ {
+ return -1;
+ }
memcpy (key->data, srv_key_pem, key->size);
cert->size = strlen (srv_self_signed_cert_pem);
cert->data = malloc (cert->size);
+ if (cert->data == NULL)
+ {
+ free (key->data);
+ return -1;
+ }
memcpy (cert->data, srv_self_signed_cert_pem, cert->size);
gnutls_certificate_set_x509_key_mem (*xcred, cert, key,
GNUTLS_X509_FMT_PEM);
@@ -382,7 +391,10 @@ setup_session (gnutls_session_t * session,
ret = gnutls_priority_set_direct (*session,
"NORMAL", &err_pos);
if (ret < 0)
- return -1;
+ {
+ free (key->data);
+ return -1;
+ }
gnutls_credentials_set (*session,
GNUTLS_CRD_CERTIFICATE,
xcred);