diff --git a/src/httpserver/http_tcp_server.c b/src/httpserver/http_tcp_server.c index 9d3397c4f..4f62f7627 100644 --- a/src/httpserver/http_tcp_server.c +++ b/src/httpserver/http_tcp_server.c @@ -95,11 +95,12 @@ static void tcp_client_thread(beken_thread_arg_t arg) } // grow by 1024 request.receivedLenmax += 1024; - request.received = (char*)realloc(request.received, request.receivedLenmax+2); - if (request.received == NULL) { + char *newbuf = (char*)realloc(request.received, request.receivedLenmax + 2); + if (newbuf == NULL) { // no memory - return; + goto exit; } + request.received = buf = newbuf; } request.received[request.receivedLen] = 0; #endif diff --git a/src/httpserver/new_tcp_server.c b/src/httpserver/new_tcp_server.c index 0dc7c4c3a..f52c68d41 100644 --- a/src/httpserver/new_tcp_server.c +++ b/src/httpserver/new_tcp_server.c @@ -85,12 +85,13 @@ static void tcp_client_thread(tcp_thread_t* arg) } // grow by INCOMING_BUFFER_SIZE request.receivedLenmax += INCOMING_BUFFER_SIZE; - request.received = (char*)realloc(request.received, request.receivedLenmax + 2); - if(request.received == NULL) + char *newbuf = (char*)realloc(request.received, request.receivedLenmax + 2); + if(newbuf == NULL) { // no memory goto exit; } + request.received = buf = newbuf; } request.received[request.receivedLen] = 0;