]> granicus.if.org Git - php/commitdiff
Fixed cleaning of uploaded files
authorArnaud Le Blanc <lbarnaud@php.net>
Thu, 18 Sep 2008 19:44:01 +0000 (19:44 +0000)
committerArnaud Le Blanc <lbarnaud@php.net>
Thu, 18 Sep 2008 19:44:01 +0000 (19:44 +0000)
main/rfc1867.c

index a38acb9df07d753316764affac58b8f3727bbf4d..25a813951a1f74901b35f3384a0b8f2ee6827def 100644 (file)
@@ -1401,13 +1401,13 @@ var_done:
                                        if (cancel_upload != UPLOAD_ERROR_E) { /* file creation failed */
                                                unlink(ascii_temp_filename);
                                        }
+                                       efree(ascii_temp_filename);
                                        efree(temp_filename);
                                }
                                temp_filename = EMPTY_STR;
                        } else {
-                               zend_u_hash_add(SG(rfc1867_uploaded_files), IS_UNICODE, ZSTR(temp_filename), u_strlen(temp_filename) + 1, &temp_filename, sizeof(UChar *), NULL);
+                               zend_u_hash_add(SG(rfc1867_uploaded_files), IS_UNICODE, ZSTR(temp_filename), u_strlen(temp_filename) + 1, &ascii_temp_filename, sizeof(char *), NULL);
                        }
-                       efree(ascii_temp_filename);
 
                        /* is_arr_upload is true when name of file upload field
                         * ends in [.*]
@@ -1525,6 +1525,9 @@ var_done:
                        }
                        add_u_protected_variable(lbuf TSRMLS_CC);
                        register_u_http_post_files_variable(lbuf, temp_filename, u_strlen(temp_filename), http_post_files, 1 TSRMLS_CC);
+                       if (!cancel_upload) {
+                               efree(temp_filename);
+                       }
 
                        {
                                zval file_size, error_type;