summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2002-09-29 22:16:29 +0000
committerIlia Alshanetsky <iliaa@php.net>2002-09-29 22:16:29 +0000
commit7f18442882e1de3af0b5b0e8b61a3caadb2a8ee9 (patch)
tree8b8192233654246217d21661e521fe1c23ac5acf
parent0fb5efd59b0e44c5622628429cf1e49e267fda98 (diff)
downloadphp-git-7f18442882e1de3af0b5b0e8b61a3caadb2a8ee9.tar.gz
Fixed a mem leak inside the path resolving code.
-rw-r--r--main/main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/main/main.c b/main/main.c
index ea411e4b94..b259955ee4 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1512,9 +1512,11 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
if (VCWD_REALPATH(primary_file->filename, realfile)) {
realfile_len = strlen(realfile);
zend_hash_add(&EG(included_files), realfile, realfile_len+1, (void *)&dummy, sizeof(int), NULL);
- primary_file->opened_path = emalloc(realfile_len+1);
- memcpy(primary_file->opened_path, realfile, realfile_len);
- primary_file->opened_path[realfile_len] = '\0';
+ if (primary_file->opened_path == NULL && strncmp(realfile, primary_file->filename, realfile_len)) {
+ primary_file->opened_path = emalloc(realfile_len+1);
+ memcpy(primary_file->opened_path, realfile, realfile_len);
+ primary_file->opened_path[realfile_len] = '\0';
+ }
}
}