Commit graph

220 commits

Author SHA1 Message Date
Christoph M. Becker
eb570294a2 Fix #73530: Unsetting result set may reset other result set
Calling sqlite3_reset() when a result set object is freed can cause
undesired and maybe even hard to track interference with other result
sets. Furthermore, there is no need to call sqlite3_reset(), because
that is implicitly called on SQLite3Stmt::execute(), and users are
encouraged to explicitly call either SQLite3Result::finalize() or
SQLite3Stmt::reset() anyway.
2016-11-16 11:49:04 +01:00
Kalle Sommer Nielsen
f38834a180 Fix compiler warnings, always cast to zend_long from sqlite3_int64 when converting to a zval 2016-10-20 10:57:38 +02:00
Kalle Sommer Nielsen
6ca38e8cf8 Ignore the return value of sqlite3->busyTimeout() if their "API Armor" is not enabled.
The sqlite3_busy_timeout() function can only ever return SQLITE_OK if the armor is not compiled in, which means we can skip this error check
2016-10-20 10:56:08 +02:00
Christoph M. Becker
e147eeb4bc Merge branch 'PHP-7.1' 2016-10-18 00:02:18 +02:00
Christoph M. Becker
32123167d1 Merge branch 'PHP-7.0' into PHP-7.1 2016-10-18 00:01:32 +02:00
Christoph M. Becker
0b596f81b8 Merge branch 'PHP-5.6' into PHP-7.0
We also use ZEND_LONG_(MAX|MIN) now instead of LONG_(MAX|MIN).
2016-10-17 23:38:28 +02:00
Christoph M. Becker
86e603a664 Fix #73333: 2147483647 is fetched as string
We return all integers that can be represented as such by PHP as
integers, and only those that exceed the possible range as strings.
On builds which represent integers with 64 bits, the range check is
unnecessary and might cause code checkers to complain, so we skip this
special casing via the preprocessor according to
<http://git.php.net/?p=php-src.git;a=commit;h=99d087e5>.
2016-10-17 23:34:41 +02:00
Christoph M. Becker
67153d644d Fix typo 2016-09-02 17:34:11 +02:00
Christoph M. Becker
be11563fa2 Merge branch 'PHP-7.0' into PHP-7.1 2016-07-27 16:54:27 +02:00
Christoph M. Becker
23c359c276 Merge branch 'PHP-5.6' into PHP-7.0
# Resolved conflicts:
#	ext/sqlite3/sqlite3.c
2016-07-27 16:48:29 +02:00
Christoph M. Becker
cc125f277b Implement #72653: SQLite should allow opening with empty filename
From the [sqlite3_open](https://www.sqlite.org/c3ref/open.html) docs:

| If the filename is an empty string, then a private, temporary on-disk
| database will be created. This private database will be automatically
| deleted as soon as the database connection is closed.

We make that facility available to userland.

While we're at it, we also do some minor optimizations, remove the
unnecessary check for NUL characters in filename, which is already catered
to by ZPP(p), and add a missing `return` in case db_obj isn't initialized.
2016-07-27 16:41:03 +02:00
Christoph M. Becker
ac0bbea3a8 Merge branch 'PHP-7.0' into PHP-7.1 2016-07-25 17:15:10 +02:00
Christoph M. Becker
ccf39dd552 Merge branch 'PHP-5.6' into PHP-7.0
# Resolved conflicts:
#	ext/sqlite3/sqlite3.c
#	ext/sqlite3/tests/bug72668.phpt
2016-07-25 17:07:41 +02:00
Christoph M. Becker
64e3e932fc Further fixes wrt. bug #72668
Not only SQLite3::querySingle(), but also SQLite3::query() and
SQLite3Stmt::execute() were affected.
2016-07-25 17:03:10 +02:00
Xinchen Hui
088905bf60 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #72668 (Spurious warning when exception is thrown in user defined function)
2016-07-25 20:28:57 +08:00
Xinchen Hui
f5e56cf970 Fixed bug #72668 (Spurious warning when exception is thrown in user defined function) 2016-07-25 20:28:39 +08:00
Xinchen Hui
24d0211b32 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash)
2016-07-11 11:51:34 +08:00
Xinchen Hui
a19655cfe3 Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash) 2016-07-11 11:51:19 +08:00
Christoph M. Becker
0d0f5976d8 Merge branch 'PHP-7.0' 2016-06-27 17:18:44 +02:00
Christoph M. Becker
0f03224d59 Merge branch 'PHP-5.6' into PHP-7.0 2016-06-27 17:09:55 +02:00
Christoph M. Becker
57940605da Fix #70628: Clearing bindings on an SQLite3 statement doesn't work
Obiously, it isn't sufficient to call sqlite3_clear_bindings() alone, but
also the bound_params of the php_sqlite3_stmt have to be cleared.
2016-06-27 17:06:27 +02:00
Dmitry Stogov
323b2733f6 Fixed compilation warnings 2016-06-22 00:40:50 +03:00
Dmitry Stogov
f0a2e8eb13 Removed "zend_fcall_info.function_table". It was assigned in many places, but is never used. 2016-04-27 13:46:38 +03:00
Anatol Belski
8b8b44145b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #68849 bindValue is not using the right data type
2016-04-12 19:15:08 +02:00
Anatol Belski
e49580c96e Fixed bug #68849 bindValue is not using the right data type 2016-04-12 19:12:45 +02:00
Nikita Popov
f57c0b3249 Merge branch 'PHP-7.0' 2016-03-03 16:50:47 +01:00
Nikita Popov
1ac152938c Move semicolon into TSRMLS_CACHE_EXTERN/DEFINE
Also re bug #71575.
2016-03-03 16:50:01 +01:00
Dmitry Stogov
c67c166f93 Removed zend_fcall_info.symbol_table 2016-03-02 17:50:55 +03:00
Nikita Popov
302214f7ce Merge branch 'PHP-7.0' 2016-02-13 18:03:45 +01:00
Nikita Popov
30d5432bfe Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	ext/sqlite3/sqlite3.c
2016-02-13 18:03:06 +01:00
Nikita Popov
fece24f8f4 Check length of string before comparing to :memory: 2016-02-13 18:01:50 +01:00
Nikita Popov
93dc91b386 Remove version checks
PHP_VERSION_ID
PHP_API_VERSION
ZEND_MODULE_API_NO
PHP_MAJOR_VERSION, PHP_MINOR_VERSION
ZEND_ENGINE_2

I've left litespeed alone, as it seems to genuinely maintain support
for many PHP versions.
2016-01-30 15:35:28 +01:00
Lior Kaplan
ed35de784f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf Happy new year (Update copyright to 2016) 2016-01-01 19:21:47 +02:00
Xinchen Hui
250430acdc Fixed Bug #71049 (SQLite3Stmt::execute() releases bound parameter instead of internal buffer) 2015-12-07 07:43:09 -08:00
Anatol Belski
5ac288bcc6 fix crash in sqlite when executing with bound stream param
rel #70862
2015-11-05 18:08:08 +01:00
Xinchen Hui
010509355d Fixed Conditional jump or move depends on uninitialised value 2015-10-14 10:19:57 +08:00
Adam Harvey
6413ecb439 Fix a memory leak in sqlite3_do_callback.
This was very, very obvious when using a debug build of PHP to build the
manual!

Fixes bug #70571 (Memory leak in sqlite3_do_callback).
2015-09-24 14:16:45 +02:00
Xinchen Hui
59e8eae4b0 Useless ZVAL_UNDEF 2015-09-09 18:00:04 +08:00
Rasmus Lerdorf
40ca0f1927 SQLite3::open/__construct has 2 optional args 2015-07-07 11:53:07 -07:00
Xinchen Hui
ca1ba39102 Merge branch 'PHP-5.6'
Conflicts:
	ext/sqlite3/sqlite3.c
2015-07-07 21:38:24 +08:00
Xinchen Hui
26471eb69c Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()) 2015-07-07 21:37:35 +08:00
Aaron Piotrowski
ed1b64877d Switch position of ce in exception ce variable names 2015-07-03 09:45:03 -05:00
Aaron Piotrowski
a812a74c2e Change zend_exception_get_default() to zend_exception_ce 2015-07-03 09:44:48 -05:00
Dmitry Stogov
4a2e40bb86 Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes). 2015-06-30 04:05:24 +03:00
Kalle Sommer Nielsen
0da4c34f0e Fixed bug #69897 (segfault when manually constructing SQLite3Result) 2015-06-22 11:12:23 +02:00
Dmitry Stogov
7649a35d52 Fixed access to uninitialized value (in case of exception) 2015-04-08 16:01:22 +03:00
Nikita Popov
122d759618 Always throw TypeException on throwing zpp failures
Introduces a ZEND_PARSE_PARAMS_THROW flag for zpp, which forces to
report FAILURE errors using a TypeException instead of a Warning,
like it would happen in strict mode.

Adds a zend_parse_parameters_throw() convenience function, which
invokes zpp with this flag.

Converts all cases I could identify, where we currently have
throwing zpp usage in constructors and replaces them with this API.
Error handling is still replaced to EH_THROW in some cases to handle
other, domain-specific errors in constructors.
2015-04-06 11:27:34 +02:00
Stanislav Malyshev
ff740f16f9 Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix bug #66550 (SQLite prepared statement use-after-free)

Conflicts:
	ext/sqlite3/sqlite3.c
2015-04-05 22:45:16 -07:00
Stanislav Malyshev
2a81733c87 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix bug #66550 (SQLite prepared statement use-after-free)
2015-04-05 22:38:20 -07:00