Domů > Apache, PHP > PHP 5.2.15 a nefunkční open_basedir

PHP 5.2.15 a nefunkční open_basedir

phpPř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? :D

Zdrojové RPM pro CentOS 5, RHEL 5 a Oracle Linux 5 jsou ke stažení zde: php-5.2.15-6.src.rpm

  1. Bez komentářů.
  1. Žádné zpětné odkazy