|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #30946 Cant rename directories across partitions
Submitted: 2004-11-30 19:06 UTC Modified: 2004-12-03 03:01 UTC
From: paul at paulbaranowski dot org Assigned:
Status: Closed Package: Filesystem function related
PHP Version: 4.3.8 OS: Redhat Enterprise Linux v3.0
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Bug Type:
From: paul at paulbaranowski dot org
New email:
PHP Version: OS:


 [2004-11-30 19:06 UTC] paul at paulbaranowski dot org
The rename function says that renaming across partitions was fixed in 4.3.3, but it appears that it is broken in 4.3.8.

I have three partitions on my system:

I'm not sure if it matters, but the disk is mirrored with RAID level 1.

Trying to rename a directory that resides in "/tmp" to the "/" file system results in:

"Warning: rename(<from>, <to>): Is a directory in <script> on line XX."

and the <to> directory name is created as an empty file.

I moved the <from> directory to the "/" partition and then tried the rename again (using the same PHP code) and everything worked fine.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2004-11-30 21:37 UTC] paul at paulbaranowski dot org
I tried it with that snapshot and the problem is still there.
 [2004-11-30 21:52 UTC]
Please, provide a reproduce code so we can reproduce it ourselves.
 [2004-11-30 22:02 UTC] paul at paulbaranowski dot org
# mkdir /tmp/test
# touch /tmp/test/foo.txt
# emacs test.php
rename("/tmp/test", "/root/test");

# /usr/local/php-4.3.8/bin/php test.php

Warning: rename(/tmp/test,/root/test): Is a directory in /root/test.php on line 2.

(A empty file "test" has now been created in /root directory)
# rm test
# mkdir /root/test
# touch /root/test/foo.txt
# emacs test.php
rename("/root/test", "/root/test2");
# /usr/local/php-4.3.8/bin/php test.php
( "/root/test" directory renamed to "/root/test2")

# emacs test.php
rename("/tmp/test", "/tmp/test2");
# /usr/local/php-4.3.8/bin/php test.php
("/tmp/test" directory renamed to "/tmp/test2")
 [2004-12-03 03:01 UTC]
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
Thank you for the report, and for helping us make PHP better.

PHP Copyright © 2001-2023 The PHP Group
All rights reserved.
Last updated: Sat Jan 28 15:03:49 2023 UTC