lbarnaud Mon Aug 11 15:32:52 2008 UTC
Modified files:
/php-src/main fopen_wrappers.c fopen_wrappers.h
Log:
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.208&r2=1.209&diff_format=u
Index: php-src/main/fopen_wrappers.c
diff -u php-src/main/fopen_wrappers.c:1.208 php-src/main/fopen_wrappers.c:1.209
--- php-src/main/fopen_wrappers.c:1.208 Mon Aug 4 07:20:44 2008
+++ php-src/main/fopen_wrappers.c Mon Aug 11 15:32:52 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fopen_wrappers.c,v 1.208 2008/08/04 07:20:44 dmitry Exp $ */
+/* $Id: fopen_wrappers.c,v 1.209 2008/08/11 15:32:52 lbarnaud Exp $ */
/* {{{ includes
*/
@@ -695,6 +695,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;
@@ -705,7 +713,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.52&r2=1.53&diff_format=u
Index: php-src/main/fopen_wrappers.h
diff -u php-src/main/fopen_wrappers.h:1.52 php-src/main/fopen_wrappers.h:1.53
--- php-src/main/fopen_wrappers.h:1.52 Wed Mar 5 13:35:02 2008
+++ php-src/main/fopen_wrappers.h Mon Aug 11 15:32:52 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fopen_wrappers.h,v 1.52 2008/03/05 13:35:02 dmitry Exp $ */
+/* $Id: fopen_wrappers.h,v 1.53 2008/08/11 15:32:52 lbarnaud Exp $ */
#ifndef FOPEN_WRAPPERS_H
#define FOPEN_WRAPPERS_H
@@ -27,6 +27,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