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

Reply via email to