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