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

 ID:                 54110
 Updated by:         paj...@php.net
 Reported by:        carsten_sttgt at gmx dot de
 Summary:            tsrm_realpath_r and junction point with denied read
                     access
-Status:             Open
+Status:             Feedback
 Type:               Bug
 Package:            Filesystem function related
 Operating System:   Windows
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

I'm not sure your diagnostic is correct. Junction or links are supported
and work 

well. Is /deny RD not about denying read data/list directory? Then why
should we 

do it?


Previous Comments:
------------------------------------------------------------------------
[2011-02-27 12:05:35] carsten_sttgt at gmx dot de

Description:
------------
tsrm_realpath_r is having a problem if working with/inside a junction
point and

"read data/list directory" is denied on this junction point.





That's the implementation for many common directories on Windows7/Vista
in e.g. %USERPROFILE%, %ALLUSERSPROFILE% like "%USERPROFILE%\SendTo".





The problem is a call to CreateFile with GENERIC_READ access in
tsrm_realpath_r. Well, the MSDN is writing:

> If this parameter is zero, the application can query certain metadata

> such as file, directory, or device attributes without accessing that

> file or device, even if GENERIC_READ access would have been denied.



I think "zero" is save at this point and that's what I'm doing in my
patch.



Regards,

Carsten









Test script:
---------------
in the shell:

md test1

mklink /j test test1

icacls test /deny *S-1-1-0:(rd)

php -r "var_dump(realpath('test'));"

php -r "var_dump(fopen('test/test.txt', 'w'));"





Expected result:
----------------
string(31) "C:\Users\Public\Documents\test1"



resource(5) of type (stream)



Actual result:
--------------
bool(false)



Warning: fopen(test/test.txt): failed to open stream: No such file or
directory

in Command line code on line 1




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



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

Reply via email to