From: Ralph Dolmans Date: Thu, 10 Sep 2020 11:05:55 +0000 (+0200) Subject: Properly handle http_endpoint malloc failure. X-Git-Tag: release-1.12.0rc1~22^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a3be2b73b64c2d6cce131ba7dd70b2647cd7a5f7;p=thirdparty%2Funbound.git Properly handle http_endpoint malloc failure. --- diff --git a/util/netevent.c b/util/netevent.c index 49ad08a4d..be3b740b5 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -3152,11 +3152,19 @@ comm_point_create_http_handler(struct comm_base *base, if(harden_large_queries && bufsize > 512) c->http2_stream_max_qbuffer_size = 512; c->http2_max_streams = http_max_streams; - c->http_endpoint = strdup(http_endpoint); + if(!(c->http_endpoint = strdup(http_endpoint))) { + log_err("could not strdup http_endpoint"); + sldns_buffer_free(c->buffer); + free(c->timeout); + free(c->ev); + free(c); + return NULL; + } c->alpn_h2 = 0; #ifdef HAVE_NGHTTP2 if(!(c->h2_session = http2_session_create(c))) { log_err("could not create http2 session"); + free(c->http_endpoint); sldns_buffer_free(c->buffer); free(c->timeout); free(c->ev); @@ -3166,6 +3174,7 @@ comm_point_create_http_handler(struct comm_base *base, if(!(c->h2_session->callbacks = http2_req_callbacks_create())) { log_err("could not create http2 callbacks"); http2_session_delete(c->h2_session); + free(c->http_endpoint); sldns_buffer_free(c->buffer); free(c->timeout); free(c->ev);