lbarnaud Mon Aug 11 15:33:14 2008 UTC
Modified files: (Branch: PHP_5_2)
/php-src/main fopen_wrappers.c fopen_wrappers.h
Log:
MFH: Missing files in previous commit (Check the relevant path for
open_basedir
in symlink())
http://cvs.php.net/viewvc.cgi/php-src/main/fopen_wrappers.c?r1=1.175.2.3.2.19&r2=1.175.2.3.2.20&diff_format=u
Index: php-src/main/fopen_wrappers.c
diff -u php-src/main/fopen_wrappers.c:1.175.2.3.2.19
php-src/main/fopen_wrappers.c:1.175.2.3.2.20
--- php-src/main/fopen_wrappers.c:1.175.2.3.2.19 Tue Jan 29 14:23:19 2008
+++ php-src/main/fopen_wrappers.c Mon Aug 11 15:33:14 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fopen_wrappers.c,v 1.175.2.3.2.19 2008/01/29 14:23:19 dmitry Exp $ */
+/* $Id: fopen_wrappers.c,v 1.175.2.3.2.20 2008/08/11 15:33:14 lbarnaud Exp $ */
/* {{{ includes
*/
@@ -601,6 +601,14 @@
*/
PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC)
{
+ return expand_filepath_ex(filepath, real_path, NULL, 0 TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ expand_filepath_ex
+ */
+PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const
char *relative_to, size_t relative_to_len TSRMLS_DC)
+{
cwd_state new_state;
char cwd[MAXPATHLEN];
int copy_len;
@@ -611,7 +619,16 @@
cwd[0] = '\0';
} else {
const char *iam = SG(request_info).path_translated;
- char *result = VCWD_GETCWD(cwd, MAXPATHLEN);
+ const char *result;
+ if (relative_to) {
+ if (relative_to_len > MAXPATHLEN-1U) {
+ return NULL;
+ }
+ result = relative_to;
+ memcpy(cwd, relative_to, relative_to_len+1U);
+ } else {
+ result = VCWD_GETCWD(cwd, MAXPATHLEN);
+ }
if (!result && (iam != filepath)) {
int fdtest = -1;
http://cvs.php.net/viewvc.cgi/php-src/main/fopen_wrappers.h?r1=1.44.2.1.2.4&r2=1.44.2.1.2.5&diff_format=u
Index: php-src/main/fopen_wrappers.h
diff -u php-src/main/fopen_wrappers.h:1.44.2.1.2.4
php-src/main/fopen_wrappers.h:1.44.2.1.2.5
--- php-src/main/fopen_wrappers.h:1.44.2.1.2.4 Mon Dec 31 07:20:14 2007
+++ php-src/main/fopen_wrappers.h Mon Aug 11 15:33:14 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fopen_wrappers.h,v 1.44.2.1.2.4 2007/12/31 07:20:14 sebastian Exp $ */
+/* $Id: fopen_wrappers.h,v 1.44.2.1.2.5 2008/08/11 15:33:14 lbarnaud Exp $ */
#ifndef FOPEN_WRAPPERS_H
#define FOPEN_WRAPPERS_H
@@ -26,6 +26,7 @@
PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC);
PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC);
+PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const
char *relative_to, size_t relative_to_len TSRMLS_DC);
PHPAPI int php_check_open_basedir(const char *path TSRMLS_DC);
PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php