packages (PHP_5_2): php/php.spec, php/php-php_dl.patch (NEW) - backport ext...

glen glen at pld-linux.org
Sun Oct 31 16:41:43 CET 2010


Author: glen                         Date: Sun Oct 31 15:41:43 2010 GMT
Module: packages                      Tag: PHP_5_2
---- Log message:
- backport extension loading from 5.3, allows loading permanent modules with full path

---- Files affected:
packages/php:
   php.spec (1.805.2.73 -> 1.805.2.74) , php-php_dl.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: packages/php/php.spec
diff -u packages/php/php.spec:1.805.2.73 packages/php/php.spec:1.805.2.74
--- packages/php/php.spec:1.805.2.73	Fri Oct 22 21:32:39 2010
+++ packages/php/php.spec	Sun Oct 31 16:41:37 2010
@@ -113,7 +113,7 @@
 Summary(uk.UTF-8):	PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері
 Name:		php
 Version:	5.2.14
-Release:	4
+Release:	5
 Epoch:		4
 License:	PHP
 Group:		Libraries
@@ -189,6 +189,7 @@
 Patch53:	%{name}-gmp.patch
 Patch54:	fix-test-run.patch
 Patch55:	%{name}-krb5.patch
+Patch56:	php-php_dl.patch
 URL:		http://www.php.net/
 %{?with_interbase:%{!?with_interbase_inst:BuildRequires:	Firebird-devel >= 1.0.2.908-2}}
 %{?with_pspell:BuildRequires:	aspell-devel >= 2:0.50.0}
@@ -1863,6 +1864,7 @@
 %patch53 -p1
 %patch54 -p1
 %patch55 -p1
+%patch56 -p1
 
 # conflict seems to be resolved by recode patches
 rm -f ext/recode/config9.m4
@@ -3166,6 +3168,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.805.2.74  2010/10/31 15:41:37  glen
+- backport extension loading from 5.3, allows loading permanent modules with full path
+
 Revision 1.805.2.73  2010/10/22 19:32:39  arekm
 - rel 4; fix heimdal build
 

================================================================
Index: packages/php/php-php_dl.patch
diff -u /dev/null packages/php/php-php_dl.patch:1.1.2.1
--- /dev/null	Sun Oct 31 16:41:43 2010
+++ packages/php/php-php_dl.patch	Sun Oct 31 16:41:37 2010
@@ -0,0 +1,49 @@
+backport extension loading from 5.3
+
+this allows to load permanent modules with full path (eases make test code)
+
+--- php-5.2.14/ext/standard/dl.c~	2010-10-31 17:07:21.000000000 +0200
++++ php-5.2.14/ext/standard/dl.c	2010-10-31 17:27:21.409467169 +0200
+@@ -114,6 +114,7 @@
+ 	zend_module_entry *(*get_module)(void);
+ 	int error_type;
+ 	char *extension_dir;
++	char *filename = Z_STRVAL_P(file);
+ 
+ 	if (type == MODULE_PERSISTENT) {
+ 		extension_dir = INI_STR("extension_dir");
+@@ -127,23 +128,24 @@
+ 		error_type = E_CORE_WARNING;
+ 	}
+ 
+-	if (extension_dir && extension_dir[0]){
+-		int extension_dir_len = strlen(extension_dir);
+-
++	/* Check if passed filename contains directory separators */
++	if (strchr(filename, '/') != NULL || strchr(filename, DEFAULT_SLASH) != NULL) {
++		/* Passing modules with full path is not supported for dynamically loaded extensions */
+ 		if (type == MODULE_TEMPORARY) {
+-			if (strchr(Z_STRVAL_P(file), '/') != NULL || strchr(Z_STRVAL_P(file), DEFAULT_SLASH) != NULL) {
+-				php_error_docref(NULL TSRMLS_CC, E_WARNING, "Temporary module name should contain only filename");
+-				RETURN_FALSE;
+-			}
++			php_error_docref(NULL TSRMLS_CC, E_WARNING, "Temporary module name should contain only filename");
++			return FAILURE;
+ 		}
++		libpath = estrdup(filename);
++	} else if (extension_dir && extension_dir[0]) {
++		int extension_dir_len = strlen(extension_dir);
+ 
+ 		if (IS_SLASH(extension_dir[extension_dir_len-1])) {
+-			spprintf(&libpath, 0, "%s%s", extension_dir, Z_STRVAL_P(file));
++			spprintf(&libpath, 0, "%s%s", extension_dir, filename); /* SAFE */
+ 		} else {
+-			spprintf(&libpath, 0, "%s%c%s", extension_dir, DEFAULT_SLASH, Z_STRVAL_P(file));
++			spprintf(&libpath, 0, "%s%c%s", extension_dir, DEFAULT_SLASH, filename); /* SAFE */
+ 		}
+ 	} else {
+-		libpath = estrndup(Z_STRVAL_P(file), Z_STRLEN_P(file));
++		return FAILURE; /* Not full path given or extension_dir is not set */
+ 	}
+ 
+ 	/* load dynamic symbol */
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/php/php.spec?r1=1.805.2.73&r2=1.805.2.74&f=u



More information about the pld-cvs-commit mailing list