X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-apfd;a=blobdiff_plain;f=php_apfd.c;h=0e1d749d5680fd9fc8c3d957702e83871b2d828e;hp=1797c962683e9ad18a750937e1a3a57e4a8a12ce;hb=0a7cc720ed246ad0468d089ec8431138b075323e;hpb=6e8088d05b37f9171cb7756a360a981754c719a3;ds=sidebyside diff --git a/php_apfd.c b/php_apfd.c index 1797c96..0e1d749 100644 --- a/php_apfd.c +++ b/php_apfd.c @@ -77,20 +77,16 @@ PHP_RINIT_FUNCTION(apfd) { /* populate form data on non-POST requests */ if (SG(request_info).request_method && strcasecmp(SG(request_info).request_method, "POST") && SG(request_info).content_type && *SG(request_info).content_type) { - char *ct_str = zend_str_tolower_dup(SG(request_info).content_type, strlen(SG(request_info).content_type)); - size_t ct_end = strcspn(ct_str, ";, "); + char *ct_str, *ct_dup = estrdup(SG(request_info).content_type); + size_t ct_end = strcspn(ct_dup, ";, "); sapi_post_entry *post_entry = NULL; - char delim; - SG(request_info).content_type_dup = ct_str; + SG(request_info).content_type_dup = ct_dup; - delim = ct_str[ct_end]; - ct_str[ct_end] = '\0'; + ct_str = zend_str_tolower_dup(ct_dup, ct_end); if ((post_entry = apfd_get_post_entry(ct_str, ct_end TSRMLS_CC))) { zval *files = apfd_backup_files(TSRMLS_C); - ct_str[ct_end] = delim; - if (post_entry) { SG(request_info).post_entry = post_entry; @@ -110,6 +106,7 @@ PHP_RINIT_FUNCTION(apfd) */ apfd_update_files(files TSRMLS_CC); } + efree(ct_str); if (SG(request_info).content_type_dup) { efree(SG(request_info).content_type_dup);