summaryrefslogtreecommitdiff
path: root/ext/sqlite3
diff options
context:
space:
mode:
authorChristoph M. Becker <cmb@php.net>2016-07-27 16:47:09 +0200
committerChristoph M. Becker <cmb@php.net>2016-07-27 16:48:29 +0200
commit23c359c27614a8b30afd860f2543912d1b297d08 (patch)
tree6b12f605c3df382816c98c35eb27d958e4068003 /ext/sqlite3
parent0d2c4f822c614c544df736a30dffc00104fdbd57 (diff)
parentcc125f277b50e0f90fc8033fe7f47d2446389a15 (diff)
downloadphp-git-23c359c27614a8b30afd860f2543912d1b297d08.tar.gz
Merge branch 'PHP-5.6' into PHP-7.0
# Resolved conflicts: # ext/sqlite3/sqlite3.c
Diffstat (limited to 'ext/sqlite3')
-rw-r--r--ext/sqlite3/sqlite3.c15
-rw-r--r--ext/sqlite3/tests/sqlite3_open_empty_string.phpt9
2 files changed, 9 insertions, 15 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 2cb6a5225c..9c14dabc66 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -112,13 +112,11 @@ PHP_METHOD(sqlite3, open)
if (db_obj->initialised) {
zend_throw_exception(zend_ce_exception, "Already initialised DB Object", 0);
- }
-
- if (strlen(filename) != filename_len) {
return;
}
- if (filename_len != sizeof(":memory:")-1 ||
- memcmp(filename, ":memory:", sizeof(":memory:")-1) != 0) {
+
+ if (filename_len != 0 && (filename_len != sizeof(":memory:")-1 ||
+ memcmp(filename, ":memory:", sizeof(":memory:")-1) != 0)) {
if (!(fullpath = expand_filepath(filename, NULL))) {
zend_throw_exception(zend_ce_exception, "Unable to expand filepath", 0);
return;
@@ -138,7 +136,8 @@ PHP_METHOD(sqlite3, open)
return;
}
} else {
- fullpath = estrdup(filename);
+ /* filename equals "" or ":memory:" */
+ fullpath = filename;
}
#if SQLITE_VERSION_NUMBER >= 3005000
@@ -147,7 +146,7 @@ PHP_METHOD(sqlite3, open)
if (sqlite3_open(fullpath, &(db_obj->db)) != SQLITE_OK) {
#endif
zend_throw_exception_ex(zend_ce_exception, 0, "Unable to open database: %s", sqlite3_errmsg(db_obj->db));
- if (fullpath) {
+ if (fullpath != filename) {
efree(fullpath);
}
return;
@@ -172,7 +171,7 @@ PHP_METHOD(sqlite3, open)
sqlite3_set_authorizer(db_obj->db, php_sqlite3_authorizer, NULL);
}
- if (fullpath) {
+ if (fullpath != filename) {
efree(fullpath);
}
}
diff --git a/ext/sqlite3/tests/sqlite3_open_empty_string.phpt b/ext/sqlite3/tests/sqlite3_open_empty_string.phpt
index 86868eeed1..940056bf0a 100644
--- a/ext/sqlite3/tests/sqlite3_open_empty_string.phpt
+++ b/ext/sqlite3/tests/sqlite3_open_empty_string.phpt
@@ -7,13 +7,8 @@ Thijs Feryn <thijs@feryn.eu>
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
--FILE--
<?php
-try{
- $db = new SQLite3('');
-} catch(Exception $e) {
- echo $e->getMessage().PHP_EOL;
-}
+$db = new SQLite3('');
echo "Done\n";
?>
---EXPECTF--
-Unable to expand filepath
+--EXPECT--
Done