PHP4 und realpath()

Wiedmann

Well-Known Member
Hallo Gemeinde,

bin hier gerade über ein Problem gestolpert und unsicher, ob die Ursache in PHP4 oder im Suhosin Patch zu suchen ist.

Gegeben:
- FreeBSD 7.0-RELEASE
- php4-4.4.8 (Suhosin Patch 0.9.6)
- php5-5.2.6 (Suhosin Patch 0.9.6.2)

Dann führt man folgenden Befehl in der Shell aus (auch über Browser möglich);
Code:
php -r "var_dump(realpath('/foo/bar'));"

Mit PHP5 erhält man wie erwartet false.
Mit PHP4 erhält man '/foo/bar'?

(Unter Linux scheint sich PHP4 auch korrekt zu verhalten --> false).

Einfach "% realpath /foo/bar" in der Shell ausgeführt bringt auch wie erwartet ein:
realpath: /foo: No such file or directory

Kann das jemand nachvollziehen, und/oder hat evtl. ein PHP4 ohne Suhosin Patch für diesen Test?
 
Sieht für mich aus als gäbe es einfach nicht ausreichende Zugriffsrechte auf /foo/bar.
 
Sieht für mich aus als gäbe es einfach nicht ausreichende Zugriffsrechte auf /foo/bar.
Falsch (als "root" hätte ich zudem die Rechte in der Shell ;-) ).

Es gibt weder "/foo" (noch "/foo/bar" logischerweise). Indem Fall muss realpath() false zurückliefern (siehe auch PHP.Manual zu realpath). Das passiert aber nur bei PHP5 und nicht bei PHP4 (siehe oben).

Jetzt ist also die Frage. Muss ich einen Bug einreichen beim:
- FreeBSD Port Maintainer für PHP4
- bei PHP
- bei Suhosin (der ersetzt ja z.T. die realpath function).

Ergo benötige ich paar Gegentests auf anderen Systemen als meines (insb. PHP4 ohne Suhosin).

Gegenwärtig kann dieses Verhalten unter PHP4 ja ein (grösseres) Problem für manche Scripte bedeuten.
 
Jetzt ist also die Frage. Muss ich einen Bug einreichen beim:
- bei Suhosin (der ersetzt ja z.T. die realpath function).
Nach ein paar Tests:
Der Fehler liegt am Suhoshin Patch.

Gegenwärtig kann dieses Verhalten unter PHP4 ja ein (grösseres) Problem für manche Scripte bedeuten.
Das ist natürlich nicht gut, da ja realpath() oft auch benutzt wird um "gehackte" Pfadangaben zu erkennen...
 
Zurück
Oben