Merge branch 'PHP-5.6' into PHP-7.0

# Resolved conflicts:
#	ext/sqlite3/sqlite3.c
This commit is contained in:
Christoph M. Becker 2016-07-27 16:47:09 +02:00
commit 23c359c276
3 changed files with 11 additions and 15 deletions

2
NEWS
View File

@ -78,6 +78,8 @@ PHP NEWS
. Fixed bug #72668 (Spurious warning when exception is thrown in user defined . Fixed bug #72668 (Spurious warning when exception is thrown in user defined
function). (Laruence) function). (Laruence)
. Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash). (Laruence) . Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash). (Laruence)
. Implemented FR #72653 (SQLite should allow opening with empty filename).
(cmb)
- Standard: - Standard:
. Fixed bug #72622 (array_walk + array_replace_recursive create references . Fixed bug #72622 (array_walk + array_replace_recursive create references

View File

@ -112,13 +112,11 @@ PHP_METHOD(sqlite3, open)
if (db_obj->initialised) { if (db_obj->initialised) {
zend_throw_exception(zend_ce_exception, "Already initialised DB Object", 0); zend_throw_exception(zend_ce_exception, "Already initialised DB Object", 0);
}
if (strlen(filename) != filename_len) {
return; 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))) { if (!(fullpath = expand_filepath(filename, NULL))) {
zend_throw_exception(zend_ce_exception, "Unable to expand filepath", 0); zend_throw_exception(zend_ce_exception, "Unable to expand filepath", 0);
return; return;
@ -138,7 +136,8 @@ PHP_METHOD(sqlite3, open)
return; return;
} }
} else { } else {
fullpath = estrdup(filename); /* filename equals "" or ":memory:" */
fullpath = filename;
} }
#if SQLITE_VERSION_NUMBER >= 3005000 #if SQLITE_VERSION_NUMBER >= 3005000
@ -147,7 +146,7 @@ PHP_METHOD(sqlite3, open)
if (sqlite3_open(fullpath, &(db_obj->db)) != SQLITE_OK) { if (sqlite3_open(fullpath, &(db_obj->db)) != SQLITE_OK) {
#endif #endif
zend_throw_exception_ex(zend_ce_exception, 0, "Unable to open database: %s", sqlite3_errmsg(db_obj->db)); 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); efree(fullpath);
} }
return; return;
@ -172,7 +171,7 @@ PHP_METHOD(sqlite3, open)
sqlite3_set_authorizer(db_obj->db, php_sqlite3_authorizer, NULL); sqlite3_set_authorizer(db_obj->db, php_sqlite3_authorizer, NULL);
} }
if (fullpath) { if (fullpath != filename) {
efree(fullpath); efree(fullpath);
} }
} }

View File

@ -7,13 +7,8 @@ Thijs Feryn <thijs@feryn.eu>
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
--FILE-- --FILE--
<?php <?php
try{ $db = new SQLite3('');
$db = new SQLite3('');
} catch(Exception $e) {
echo $e->getMessage().PHP_EOL;
}
echo "Done\n"; echo "Done\n";
?> ?>
--EXPECTF-- --EXPECT--
Unable to expand filepath
Done Done