jani Sat, 25 Jul 2009 20:44:19 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=286323
Log: - Fixed bug #48637 ("file" wrapper is overwritten when using --with-curlwrappers) # Also fixes bug #48603, basically same issue. Bugs: http://bugs.php.net/48637 (Assigned) "file" wrapper is overwritten when using --with-curlwrappers http://bugs.php.net/48603 (Open) Using --with-curlwrappers and open_basedir causes problems Changed paths: U php/php-src/branches/PHP_5_2/NEWS U php/php-src/branches/PHP_5_2/ext/curl/interface.c U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/curl/interface.c U php/php-src/trunk/ext/curl/interface.c Modified: php/php-src/branches/PHP_5_2/NEWS =================================================================== --- php/php-src/branches/PHP_5_2/NEWS 2009-07-25 20:39:01 UTC (rev 286322) +++ php/php-src/branches/PHP_5_2/NEWS 2009-07-25 20:44:19 UTC (rev 286323) @@ -29,6 +29,8 @@ - Fixed bug #48693 (Double declaration of __lambda_func when lambda wrongly formatted). (peter at lvp-media dot com, Felipe) - Fixed bug #48661 (phpize is broken with non-bash shells). (Jani) +- Fixed bug #48637 ("file" fopen wrapper is overwritten when using + --with-curlwrappers). (Jani) - Fixed bug #48636 (Error compiling of ext/date on netware). (guenter at php.net, Ilia) - Fixed bug #48629 (get_defined_constants() ignores categorize parameter). Modified: php/php-src/branches/PHP_5_2/ext/curl/interface.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/curl/interface.c 2009-07-25 20:39:01 UTC (rev 286322) +++ php/php-src/branches/PHP_5_2/ext/curl/interface.c 2009-07-25 20:44:19 UTC (rev 286323) @@ -696,13 +696,24 @@ char **p = (char **)info->protocols; while (*p != NULL) { - php_register_url_stream_wrapper(*p++, &php_curl_wrapper TSRMLS_CC); + /* Do not enable cURL "file" protocol and make sure cURL is always used when --with-curlwrappers is enabled */ + if (strncasecmp(*p, "file", sizeof("file")-1) != 0) { + php_unregister_url_stream_wrapper(*p); + php_register_url_stream_wrapper(*p, &php_curl_wrapper TSRMLS_CC); + } + (void) *p++; } } # else + php_unregister_url_stream_wrapper("http"); php_register_url_stream_wrapper("http", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("https"); php_register_url_stream_wrapper("https", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ftp"); php_register_url_stream_wrapper("ftp", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ftps"); + php_register_url_stream_wrapper("ftps", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ldap"); php_register_url_stream_wrapper("ldap", &php_curl_wrapper TSRMLS_CC); # endif #endif Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2009-07-25 20:39:01 UTC (rev 286322) +++ php/php-src/branches/PHP_5_3/NEWS 2009-07-25 20:44:19 UTC (rev 286323) @@ -46,6 +46,8 @@ components). (Ilia) - Fixed bug #48681 (openssl signature verification for tar archives broken). (Greg) +- Fixed bug #48637 ("file" fopen wrapper is overwritten when using + --with-curlwrappers). (Jani) - Fixed bug #48377 (error message unclear on converting phar with existing file). (Greg) - Fixed bug #48247 (Infinite loop and possible crash during startup with Modified: php/php-src/branches/PHP_5_3/ext/curl/interface.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/curl/interface.c 2009-07-25 20:39:01 UTC (rev 286322) +++ php/php-src/branches/PHP_5_3/ext/curl/interface.c 2009-07-25 20:44:19 UTC (rev 286323) @@ -818,13 +818,24 @@ char **p = (char **)info->protocols; while (*p != NULL) { - php_register_url_stream_wrapper(*p++, &php_curl_wrapper TSRMLS_CC); + /* Do not enable cURL "file" protocol and make sure cURL is always used when --with-curlwrappers is enabled */ + if (strncasecmp(*p, "file", sizeof("file")-1) != 0) { + php_unregister_url_stream_wrapper(*p); + php_register_url_stream_wrapper(*p, &php_curl_wrapper TSRMLS_CC); + } + (void) *p++; } } # else + php_unregister_url_stream_wrapper("http"); php_register_url_stream_wrapper("http", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("https"); php_register_url_stream_wrapper("https", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ftp"); php_register_url_stream_wrapper("ftp", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ftps"); + php_register_url_stream_wrapper("ftps", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ldap"); php_register_url_stream_wrapper("ldap", &php_curl_wrapper TSRMLS_CC); # endif #endif Modified: php/php-src/trunk/ext/curl/interface.c =================================================================== --- php/php-src/trunk/ext/curl/interface.c 2009-07-25 20:39:01 UTC (rev 286322) +++ php/php-src/trunk/ext/curl/interface.c 2009-07-25 20:44:19 UTC (rev 286323) @@ -818,13 +818,24 @@ char **p = (char **)info->protocols; while (*p != NULL) { - php_register_url_stream_wrapper(*p++, &php_curl_wrapper TSRMLS_CC); + /* Do not enable cURL "file" protocol and make sure cURL is always used when --with-curlwrappers is enabled */ + if (strncasecmp(*p, "file", sizeof("file")-1) != 0) { + php_unregister_url_stream_wrapper(*p); + php_register_url_stream_wrapper(*p, &php_curl_wrapper TSRMLS_CC); + } + (void) *p++; } } # else + php_unregister_url_stream_wrapper("http"); php_register_url_stream_wrapper("http", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("https"); php_register_url_stream_wrapper("https", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ftp"); php_register_url_stream_wrapper("ftp", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ftps"); + php_register_url_stream_wrapper("ftps", &php_curl_wrapper TSRMLS_CC); + php_unregister_url_stream_wrapper("ldap"); php_register_url_stream_wrapper("ldap", &php_curl_wrapper TSRMLS_CC); # endif #endif
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php