summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2015-11-05 18:08:08 +0100
committerAnatol Belski <ab@php.net>2015-11-05 18:08:08 +0100
commit5ac288bcc6b8858e3ea509d92426b2bacc7fd397 (patch)
tree1e5370e481e2009de8fd7b7e0157458337f40045 /ext/sqlite3/sqlite3.c
parent9385eb6ff8f85d0ab2bae96f02197fe7fc70d85c (diff)
downloadphp-git-5ac288bcc6b8858e3ea509d92426b2bacc7fd397.tar.gz
fix crash in sqlite when executing with bound stream param
rel #70862
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 12340f991e..4e3cc28eda 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -1527,7 +1527,7 @@ PHP_METHOD(sqlite3stmt, execute)
case SQLITE_BLOB:
{
php_stream *stream = NULL;
- zend_string *buffer;
+ zend_string *buffer = NULL;
if (Z_TYPE_P(parameter) == IS_RESOURCE) {
php_stream_from_zval_no_verify(stream, parameter);
if (stream == NULL) {
@@ -1540,10 +1540,11 @@ PHP_METHOD(sqlite3stmt, execute)
buffer = Z_STR_P(parameter);
}
- sqlite3_bind_blob(stmt_obj->stmt, param->param_number, ZSTR_VAL(buffer), ZSTR_LEN(buffer), SQLITE_TRANSIENT);
-
- if (stream) {
+ if (buffer) {
+ sqlite3_bind_blob(stmt_obj->stmt, param->param_number, ZSTR_VAL(buffer), ZSTR_LEN(buffer), SQLITE_TRANSIENT);
zend_string_release(buffer);
+ } else {
+ sqlite3_bind_null(stmt_obj->stmt, param->param_number);
}
break;
}