diff options
author | Anatol Belski <ab@php.net> | 2015-11-05 18:08:08 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2015-11-05 18:08:08 +0100 |
commit | 5ac288bcc6b8858e3ea509d92426b2bacc7fd397 (patch) | |
tree | 1e5370e481e2009de8fd7b7e0157458337f40045 /ext/sqlite3/sqlite3.c | |
parent | 9385eb6ff8f85d0ab2bae96f02197fe7fc70d85c (diff) | |
download | php-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.c | 9 |
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; } |