summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-11-23 22:04:32 +0000
committerAntony Dovgal <tony2001@php.net>2006-11-23 22:04:32 +0000
commit7d4abedf5a6611ecac44c0c4e29b4a0dc63cae3a (patch)
tree4465090ffdf87f488e7ccc970ea4e77720c9e039
parenta75c11138be65d7836dc4a9d07240891ece8a8df (diff)
downloadphp-git-7d4abedf5a6611ecac44c0c4e29b4a0dc63cae3a.tar.gz
nullify opened_path and filename (when required)
fixes invalid reads with `php-cli -F <script>`
-rw-r--r--Zend/zend_language_scanner.l5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 54328906c9..b1573c58e6 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -281,6 +281,11 @@ int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2)
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
{
zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
+ /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
+ file_handle->opened_path = NULL;
+ if (file_handle->free_filename) {
+ file_handle->filename = NULL;
+ }
}
/* Convert one octal digit to a numeric value 0..7, or -1 on failure */