libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit f33a16a615ae2fd55f1fd7ddf8654a82bcca0228
parent a9438fbc33076485a08efbe5d3c0c7b59fb03dc0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue, 21 Sep 2010 10:46:06 +0000

check malloc return values

Diffstat:
Msrc/testcurl/daemontest_get_chunked.c | 2++
Msrc/testcurl/daemontest_large_put.c | 1+
Msrc/testcurl/daemontest_long_header.c | 10++++++++++
Msrc/testcurl/https/tls_extension_test.c | 6+++++-
Msrc/testcurl/https/tls_test_common.c | 14+++++++++++++-
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);