PHP 5.2.15 a nefunkční open_basedir
Při testování PHP 5.2.15 před nasazením na naše servery jsem narazil na dost závažný problém který se ve starších verzích nevyskytoval – nefunkční open_basedir nastavovaný pomocí konfigurace Apache v sekci VirtualHost. Problém se mi podařilo najít celkem rychle – nějakej idiot kterejch je mezi autorama PHP spousta se učil pracovat se stringama a vážně mu to moc nešlo, takže to rozbil. Nicméně oprava je poměrně jednoduchá.Po chvilce trápení jsem tedy problém našel a udělal patch:
--- php-5.2.15/main/fopen_wrappers.c 2010-12-09 18:04:29.000000000 +0100
+++ php-5.2.15.ofi/main/fopen_wrappers.c 2010-12-10 14:08:00.000000000 +0100
@@ -192,7 +192,7 @@
if (strncmp(resolved_basedir, resolved_name, resolved_basedir_len) == 0) {
#endif
if (resolved_name_len > resolved_basedir_len &&
- resolved_name[resolved_basedir_len] != PHP_DIR_SEPARATOR) {
+ resolved_name[resolved_basedir_len - 1] != PHP_DIR_SEPARATOR) {
return -1;
} else {
/* File is in the right directory */
Patch ke stažení: php-5.2.15-open_basedir-fix.patch
Plně funkční a zabezpečené PHP můžete yní využívat například u služby HOSTING90.cz.
Přeji příjemné užívání nového PHP. No a na závěr malá otázka – kdy asi vyjde PHP 5.2.16?
Zdrojové RPM pro CentOS 5, RHEL 5 a Oracle Linux 5 jsou ke stažení zde: php-5.2.15-6.src.rpm