components/php-5_3/php-sapi/patches/041_php_ext_standard_dl.c.patch
author Craig Mohrman <craig.mohrman@oracle.com>
Fri, 18 Apr 2014 11:03:12 -0700
branchs11u1-sru
changeset 3086 649b12aa87ce
parent 846 fe258446a1ae
permissions -rw-r--r--
17362112 problem in UTILITY/PHP 18083695 problem in UTILITY/PHP 18181920 remove BUILD_VERSION from php package manifests 18368537 problem in UTILITY/PHP 18368630 problem in UTILITY/PHP
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
846
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     1
--- php-5.3.10/ext/standard/dl.c_orig	Sun Jan  1 05:15:04 2012
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     2
+++ php-5.3.10/ext/standard/dl.c	Wed Feb  8 11:25:26 2012
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     3
@@ -132,12 +132,30 @@
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     4
 		}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     5
 		libpath = estrdup(filename);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     6
 	} else if (extension_dir && extension_dir[0]) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     7
-		int extension_dir_len = strlen(extension_dir);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     8
+		/* if extension_dir supports multiple paths, then look for the extension in each of them */
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
     9
+		static const char path_sep[] = { ZEND_PATHS_SEPARATOR, 0 };
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    10
+		struct stat filetype;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    11
+		char* extdir = NULL;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    12
+		if ((extdir = strtok_r(extension_dir, path_sep, &extension_dir)) != NULL) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    13
+			do {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    14
+				int extension_dir_len = strlen(extdir);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    15
+				if (IS_SLASH(extdir[extension_dir_len-1])) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    16
+					spprintf(&libpath, 0, "%s%s", extdir, filename);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    17
+				} else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    18
+					spprintf(&libpath, 0, "%s%c%s", extdir, DEFAULT_SLASH, filename);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    19
+				}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    20
 
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    21
-		if (IS_SLASH(extension_dir[extension_dir_len-1])) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    22
-			spprintf(&libpath, 0, "%s%s", extension_dir, filename); /* SAFE */
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    23
+				if (stat(libpath, &filetype) == 0) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    24
+					break;
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    25
+				}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    26
+			} while (extension_dir && (extdir = strtok_r(NULL, path_sep, &extension_dir)) != NULL);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    27
 		} else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    28
-			spprintf(&libpath, 0, "%s%c%s", extension_dir, DEFAULT_SLASH, filename); /* SAFE */
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    29
+			int extension_dir_len = strlen(extension_dir);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    30
+			if (IS_SLASH(extension_dir[extension_dir_len-1])) {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    31
+				spprintf(&libpath, 0, "%s%s", extension_dir, filename);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    32
+			} else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    33
+				spprintf(&libpath, 0, "%s%c%s", extension_dir, DEFAULT_SLASH, filename);
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    34
+			}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    35
 		}
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    36
 	} else {
fe258446a1ae 6714149 integrate PHP 5.3 within OpenSolaris
Craig Mohrman <craig.mohrman@oracle.com>
parents:
diff changeset
    37
 		return FAILURE; /* Not full path given or extension_dir is not set */