summaryrefslogtreecommitdiff
path: root/main/SAPI.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/SAPI.c')
-rw-r--r--main/SAPI.c27
1 files changed, 18 insertions, 9 deletions
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;
}