helly Tue Aug 12 17:15:16 2003 EDT
Modified files:
/php-src/ext/sqlite sqlite.c
Log:
Bugfix #25056
Index: php-src/ext/sqlite/sqlite.c
diff -u php-src/ext/sqlite/sqlite.c:1.80 php-src/ext/sqlite/sqlite.c:1.81
--- php-src/ext/sqlite/sqlite.c:1.80 Sun Aug 3 13:44:37 2003
+++ php-src/ext/sqlite/sqlite.c Tue Aug 12 17:15:16 2003
@@ -17,7 +17,7 @@
| Marcus Boerger <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: sqlite.c,v 1.80 2003/08/03 17:44:37 zeev Exp $
+ $Id: sqlite.c,v 1.81 2003/08/12 21:15:16 helly Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -947,7 +947,7 @@
{
php_info_print_table_start();
php_info_print_table_header(2, "SQLite support", "enabled");
- php_info_print_table_row(2, "PECL Module version", PHP_SQLITE_MODULE_VERSION "
$Id: sqlite.c,v 1.80 2003/08/03 17:44:37 zeev Exp $");
+ php_info_print_table_row(2, "PECL Module version", PHP_SQLITE_MODULE_VERSION "
$Id: sqlite.c,v 1.81 2003/08/12 21:15:16 helly Exp $");
php_info_print_table_row(2, "SQLite Library", sqlite_libversion());
php_info_print_table_row(2, "SQLite Encoding", sqlite_libencoding());
php_info_print_table_end();
@@ -1107,7 +1107,7 @@
PHP_FUNCTION(sqlite_open)
{
int mode = 0666;
- char *filename;
+ char *filename, *fullpath = NULL;
long filename_len;
zval *errmsg = NULL;
zval *object = getThis();
@@ -1123,17 +1123,22 @@
}
if (strncmp(filename, ":memory:", sizeof(":memory:") - 1)) {
- if (PG(safe_mode) && (!php_checkuid(filename, NULL,
CHECKUID_CHECK_FILE_AND_DIR))) {
+ /* resolve the fully-qualified path name to use as the hash key */
+ fullpath = expand_filepath(filename, NULL TSRMLS_CC);
+
+ if (PG(safe_mode) && (!php_checkuid(fullpath, NULL,
CHECKUID_CHECK_FILE_AND_DIR))) {
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
+ efree(fullpath);
if (object) {
RETURN_NULL();
} else {
RETURN_FALSE;
}
}
-
- if (php_check_open_basedir(filename TSRMLS_CC)) {
+
+ if (php_check_open_basedir(fullpath TSRMLS_CC)) {
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
+ efree(fullpath);
if (object) {
RETURN_NULL();
} else {
@@ -1142,8 +1147,11 @@
}
}
- php_sqlite_open(filename, mode, NULL, return_value, errmsg, object TSRMLS_CC);
+ php_sqlite_open(fullpath?fullpath:filename, mode, NULL, return_value, errmsg,
object TSRMLS_CC);
+ if (fullpath) {
+ efree(fullpath);
+ }
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php