php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8519 closedir() does not close directory handle until script terminates
Submitted: 2001-01-02 13:28 UTC Modified: 2001-01-02 20:01 UTC
From: kat at unleashed dot org Assigned:
Status: Closed Package: Directory function related
PHP Version: 4.0.3pl1 OS: Windows NT 4.0, Windows 2000 Ser
Private report: No CVE-ID: None
 [2001-01-02 13:28 UTC] kat at unleashed dot org
The below script will generate a "permission denied" error when trying to rmdir the specified directory. sleep() does not do any good (in helping me delete the dir), nor does putting the reading of the directory into a function. After I moved the rmdir into a separate script it did not generate an error. It makes no difference whether it's forward or backward slashes in the path.

This happens only after using the opendir/readdir/closedir sequence. I have not tested further to see if readdir may be the issue.

This is a stock 4.03pl1 php, running as an apache module.

My Test script:
-------------------------
<?php	

	$dirName = "c:/temp/foo.bar";

	function checkDir()
	{
		global $dirName;

		$dirHandle = opendir($dirName);

		while($fileName = readdir($dirHandle))
		{
			print $fileName."\n";
		}

		closedir($dirHandle);
	}

	print "Making directory\n";
	mkdir($dirName, 0777);

	checkDir();


	print "Removing directory\n";
	rmdir($dirName);
?>
--------------------------------------------
 

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-01-02 20:01 UTC] sniper@php.net
This is fixed in PHP 4.0.4.

--Jani
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Thu Nov 26 02:01:23 2020 UTC