diff options
Diffstat (limited to 'main/php_logos.c')
-rw-r--r-- | main/php_logos.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/main/php_logos.c b/main/php_logos.c index c544d7fdf3..e85b04839e 100644 --- a/main/php_logos.c +++ b/main/php_logos.c @@ -78,13 +78,12 @@ int php_info_logos(const char *logo_string TSRMLS_DC) if(FAILURE==zend_hash_find(&phpinfo_logo_hash, (char *) logo_string, strlen(logo_string), (void **)&logo_image)) return 0; - len=strlen(CONTENT_TYPE_HEADER)+logo_image->mimelen; - content_header=malloc(len+1); - if(!content_header) return 0; - strcpy(content_header, CONTENT_TYPE_HEADER); - strcat(content_header, logo_image->mimetype); - sapi_add_header(content_header, len, 1); - free(content_header); + len = sizeof(CONTENT_TYPE_HEADER) - 1 + logo_image->mimelen; + content_header = emalloc(len + 1); + memcpy(content_header, CONTENT_TYPE_HEADER, sizeof(CONTENT_TYPE_HEADER) - 1); + memcpy(content_header + sizeof(CONTENT_TYPE_HEADER) - 1 , logo_image->mimetype, logo_image->mimelen); + content_header[len] = '\0'; + sapi_add_header(content_header, len, 0); PHPWRITE(logo_image->data, logo_image->size); return 1; |