diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/standard/dir.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 0a42fd055c..11dcb0cf8d 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -256,13 +256,15 @@ PHP_FUNCTION(closedir) { zval **id, **tmp, *myself; php_stream *dirp; + int rsrc_id; FETCH_DIRP(); - if (dirp->rsrc_id == DIRG(default_dir)) { + rsrc_id = dirp->rsrc_id; + zend_list_delete(dirp->rsrc_id); + + if (rsrc_id == DIRG(default_dir)) { php_set_default_dir(-1 TSRMLS_CC); - } else { - zend_list_delete(dirp->rsrc_id); } } /* }}} */ |
