ID:               26051
 User updated by:  six at t0x dot net
 Reported By:      six at t0x dot net
-Status:           Bogus
+Status:           Open
 Bug Type:         Filesystem function related
 Operating System: win2k
 PHP Version:      4.3.4RC3
 New Comment:

Please consider the security problem stated above before definetly
denying this is a bug


Previous Comments:
------------------------------------------------------------------------

[2003-10-31 10:01:30] six at t0x dot net

You seem to assume that the runtime c library is 100% compatible with
the unix ones ...

It's not that windows returns wrong types, just that windows provides
*another way* to get the file type (the GetFileType API call).

And no, filetype() doesn't work on windows ... At least as it's
described in the documentation that says "Returns the type of the file"
and not "Wrapper for the stat() libc call".

This is an important problem, because it's currently impossible to
protect an app from potential security issues regarding access to
critical device files on win32 (like CON, PRN, CLOCK$, ...). A PHP app
running on windows, receiving a file name from an untrusted input has
*no way* to tell what the file really is.

------------------------------------------------------------------------

[2003-10-31 09:39:31] [EMAIL PROTECTED]

filetype() does work just fine on windows. 
If windows returns 'wrong' types, it's not bug in PHP..


------------------------------------------------------------------------

[2003-10-31 09:27:18] six at t0x dot net

There are specific win32 API calls (GetFileType comes to my mind) to
get this kind of information.

I don't think this should be classified as "Bogus" because this is a
very confusing behavior, at least, if you don't plan to fix the bug,
the documentation should be updated to clearly state that filetype()
does not work on Win32.

------------------------------------------------------------------------

[2003-10-31 08:38:17] [EMAIL PROTECTED]

PHP returns whatever the libc stat() function returns for the filetype.
No bug.


------------------------------------------------------------------------

[2003-10-31 06:06:43] six at t0x dot net

Description:
------------
As the subject states, filetype() on windows (w2k at least) returns
wrong type for device drivers. Actually, it seems to always return the
type "file".



Reproduce code:
---------------
<?

// Of course this works with any device name with any extension

echo "type : ".filetype("c:\com1.xxx");

?>

Expected result:
----------------
type : char

Actual result:
--------------
type : file


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=26051&edit=1

Reply via email to