summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2000-07-29 10:44:13 +0000
committerZeev Suraski <zeev@php.net>2000-07-29 10:44:13 +0000
commit735a0d148ea2a0154b000895bcdf97ddd5a4b8ef (patch)
tree883d320fc0346f1189ba7f4185fbb5e4faee477d /Zend/zend_execute.c
parent3d1b363967845f08963c8a1ff8fbc9e538f83914 (diff)
downloadphp-git-735a0d148ea2a0154b000895bcdf97ddd5a4b8ef.tar.gz
Fix filename issues
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index d15cedb12d..4706bcc181 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -2039,9 +2039,13 @@ send_by_ref:
file_handle.handle.fp = zend_fopen(inc_filename->value.str.val, &opened_path);
file_handle.type = ZEND_HANDLE_FP;
- file_handle.filename = inc_filename->value.str.val;
- file_handle.opened_path = opened_path;
- file_handle.free_filename = 0;
+ if (opened_path) {
+ file_handle.filename = estrdup(opened_path);
+ file_handle.free_filename = 1;
+ } else {
+ file_handle.filename = inc_filename->value.str.val;
+ file_handle.free_filename = 0;
+ }
if (file_handle.handle.fp) {
if (!opened_path || zend_hash_add(&EG(included_files), opened_path, strlen(opened_path)+1, (void *)&dummy, sizeof(int), NULL)==SUCCESS) {
@@ -2054,12 +2058,12 @@ send_by_ref:
} else {
fclose(file_handle.handle.fp);
}
- if (opened_path) {
- free(opened_path);
- }
} else {
zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle.filename);
}
+ if (opened_path) {
+ free (opened_path);
+ }
break;
}
break;