From 36655400cb76d849285b130d1f64613218948996 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sun, 21 Sep 2003 19:36:40 +0000 Subject: - return correct hash constants - check for 'memory' in sqlite_factory() too (noticed by John Coggeshal) --- ext/sqlite/sqlite.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'ext/sqlite/sqlite.c') diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c index 06b72eb2e1..e33c22c153 100644 --- a/ext/sqlite/sqlite.c +++ b/ext/sqlite/sqlite.c @@ -757,7 +757,7 @@ typedef struct _sqlite_object { static int sqlite_free_persistent(list_entry *le, void *ptr TSRMLS_DC) { - return le->ptr == ptr; + return le->ptr == ptr ? ZEND_HASH_APPLY_REMOVE : ZEND_HASH_APPLY_KEEP; } static void sqlite_object_dtor(void *object, zend_object_handle handle TSRMLS_DC) @@ -1172,14 +1172,16 @@ PHP_FUNCTION(sqlite_factory) zval_dtor(errmsg); } - if (PG(safe_mode) && (!php_checkuid(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { - php_std_error_handling(); - RETURN_NULL(); - } - - if (php_check_open_basedir(filename TSRMLS_CC)) { - php_std_error_handling(); - RETURN_NULL(); + if (strncmp(filename, ":memory:", sizeof(":memory:") - 1)) { + if (PG(safe_mode) && (!php_checkuid(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { + php_std_error_handling(); + RETURN_NULL(); + } + + if (php_check_open_basedir(filename TSRMLS_CC)) { + php_std_error_handling(); + RETURN_NULL(); + } } php_sqlite_open(filename, mode, NULL, return_value, errmsg, return_value TSRMLS_CC); -- cgit v1.2.1