stas Mon Jun 18 21:59:05 2007 UTC Modified files: /php-src/ext/mysqli mysqli_api.c /php-src/ext/pdo_mysql mysql_driver.c Log: Fix INFILE LOCAL option handling with MySQL - now not allowed when open_basedir is active http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.146&r2=1.147&diff_format=u Index: php-src/ext/mysqli/mysqli_api.c diff -u php-src/ext/mysqli/mysqli_api.c:1.146 php-src/ext/mysqli/mysqli_api.c:1.147 --- php-src/ext/mysqli/mysqli_api.c:1.146 Sat Apr 14 10:42:41 2007 +++ php-src/ext/mysqli/mysqli_api.c Mon Jun 18 21:59:05 2007 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli_api.c,v 1.146 2007/04/14 10:42:41 tony2001 Exp $ + $Id: mysqli_api.c,v 1.147 2007/06/18 21:59:05 stas Exp $ */ #ifdef HAVE_CONFIG_H @@ -1320,6 +1320,12 @@ } MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED); + if (PG(open_basedir) && PG(open_basedir)[0] != '\0') { + if(mysql_option == MYSQL_OPT_LOCAL_INFILE) { + RETURN_FALSE; + } + } + switch (Z_TYPE_PP(&mysql_value)) { case IS_UNICODE: zval_unicode_to_string(mysql_value TSRMLS_CC); @@ -1453,9 +1459,9 @@ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED); /* remove some insecure options */ - flags ^= CLIENT_MULTI_STATEMENTS; /* don't allow multi_queries via connect parameter */ - if (PG(open_basedir) && strlen(PG(open_basedir))) { - flags ^= CLIENT_LOCAL_FILES; + flags &= ~CLIENT_MULTI_STATEMENTS; /* don't allow multi_queries via connect parameter */ + if (PG(open_basedir) && PG(open_basedir)[0] != '\0') { + flags &= ~CLIENT_LOCAL_FILES; } if (!socket) { http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_mysql/mysql_driver.c?r1=1.77&r2=1.78&diff_format=u Index: php-src/ext/pdo_mysql/mysql_driver.c diff -u php-src/ext/pdo_mysql/mysql_driver.c:1.77 php-src/ext/pdo_mysql/mysql_driver.c:1.78 --- php-src/ext/pdo_mysql/mysql_driver.c:1.77 Mon Jan 1 09:29:28 2007 +++ php-src/ext/pdo_mysql/mysql_driver.c Mon Jun 18 21:59:05 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysql_driver.c,v 1.77 2007/01/01 09:29:28 sebastian Exp $ */ +/* $Id: mysql_driver.c,v 1.78 2007/06/18 21:59:05 stas Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -476,6 +476,10 @@ H->emulate_prepare = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_DIRECT_QUERY, 1 TSRMLS_CC); H->max_buffer_size = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_MAX_BUFFER_SIZE, H->max_buffer_size TSRMLS_CC); + if (PG(open_basedir) && PG(open_basedir)[0] != '\0') { + local_infile = 0; + } + if (mysql_options(H->server, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout)) { pdo_mysql_error(dbh); goto cleanup;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php