From: Joe Watkins Date: Sun, 27 Mar 2016 05:50:11 +0000 (+0100) Subject: fix #70189 (SAPI sends empty Content-Type when default_mimetype is empty) X-Git-Tag: php-7.0.6RC1~60 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=28f66763a436066d51b21dcf9d6ac3f5a0b33df7;p=php fix #70189 (SAPI sends empty Content-Type when default_mimetype is empty) --- diff --git a/main/SAPI.c b/main/SAPI.c index 9781f18c12..496bbfbd12 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -856,15 +856,24 @@ SAPI_API int sapi_send_headers(void) * in case of an error situation. */ if (SG(sapi_headers).send_default_content_type && sapi_module.send_headers) { - sapi_header_struct default_header; - uint len; - - SG(sapi_headers).mimetype = get_default_content_type(0, &len); - default_header.header_len = sizeof("Content-type: ") - 1 + len; - default_header.header = emalloc(default_header.header_len + 1); - memcpy(default_header.header, "Content-type: ", sizeof("Content-type: ") - 1); - memcpy(default_header.header + sizeof("Content-type: ") - 1, SG(sapi_headers).mimetype, len + 1); - sapi_header_add_op(SAPI_HEADER_ADD, &default_header); + uint len = 0; + char *default_mimetype = get_default_content_type(0, &len); + + if (default_mimetype && len) { + sapi_header_struct default_header; + + SG(sapi_headers).mimetype = default_mimetype; + + default_header.header_len = sizeof("Content-type: ") - 1 + len; + default_header.header = emalloc(default_header.header_len + 1); + + memcpy(default_header.header, "Content-type: ", sizeof("Content-type: ") - 1); + memcpy(default_header.header + sizeof("Content-type: ") - 1, SG(sapi_headers).mimetype, len + 1); + + sapi_header_add_op(SAPI_HEADER_ADD, &default_header); + } else { + efree(default_mimetype); + } SG(sapi_headers).send_default_content_type = 0; }