#44071 [Opn->Bgs]: realpath does not handle drive letters correctly

From: Date: Sun, 20 Jul 2008 16:15:46 +0000
Subject: #44071 [Opn->Bgs]: realpath does not handle drive letters correctly
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-127016@lists.php.net to get a copy of this message
ID: 44071 Updated by: pajoye@php.net Reported By: csaba at alum dot mit dot edu -Status: Open +Status: Bogus Bug Type: Filesystem function related Operating System: Windows PHP Version: 5.2.6 New Comment: realpath expects a path, a drive letter is not a valid path. By the way, some functions may be added to deal with the drives on windows like chdrive. Previous Comments: ------------------------------------------------------------------------ [2008-02-18 12:20:12] csaba at alum dot mit dot edu It's still a problem. On my Win XP Pro, with PHP 5.2.6-dev (cli) (built: Feb 13 2008 12:05:17) php -r "var_dump(array(getcwd(),realpath('c:')));" produced: array(2) { [0]=> string(18) "C:\Winapps\PHP.net" [1]=> string(3) "C:\" } The second string is wrong - it should have been the same as the first. ------------------------------------------------------------------------ [2008-02-08 02:08:29] csaba at alum dot mit dot edu is_file and is_dir seem to be similarly affected. For example realpath("c:frump") will return false if c:\frump does not exist (note the extra backslash), whereas it should be checking for frump hanging off the current directory on the c: drive ------------------------------------------------------------------------ [2008-02-07 16:26:22] csaba at alum dot mit dot edu Description: ------------ realpath does not handle a drive letters correctly, when the drive letter is not followed by a backslash: 1) When books is a subdirectory of the current working directory on the c: drive (getcwd) realpath("c:books") returns false 2) realpath("c:.") and realpath("c:..") both return the three character string: C:\ Expected result: ---------------- 1. books\ should be suffixed onto the current working directory of the c: drive 2. The current working directory of the c: drive (and one level higher for the case of ..) should be returned, instead of the root. Csaba Gabor from Vienna ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=44071&edit=1

« previous php.bugs (#127016) next »