summaryrefslogtreecommitdiff
path: root/ext/pdo_sqlite/sqlite_statement.c
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2015-11-05 21:50:34 +0100
committerAnatol Belski <ab@php.net>2015-11-08 04:24:16 +0100
commit12208dc8fc3eec47e25dc9b3f034a3ca11dc338c (patch)
treeb8a8aa961e1f13656a7159849b8210e32e634a0d /ext/pdo_sqlite/sqlite_statement.c
parent5fad12088558c8d7f77a3b9c4fe5573415c03e54 (diff)
downloadphp-git-12208dc8fc3eec47e25dc9b3f034a3ca11dc338c.tar.gz
fix pdo_sqlite crash with empty bound stream
Diffstat (limited to 'ext/pdo_sqlite/sqlite_statement.c')
-rw-r--r--ext/pdo_sqlite/sqlite_statement.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/pdo_sqlite/sqlite_statement.c b/ext/pdo_sqlite/sqlite_statement.c
index 9b74b24212..93807c834c 100644
--- a/ext/pdo_sqlite/sqlite_statement.c
+++ b/ext/pdo_sqlite/sqlite_statement.c
@@ -138,11 +138,12 @@ static int pdo_sqlite_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_d
parameter = &param->parameter;
}
if (Z_TYPE_P(parameter) == IS_RESOURCE) {
- php_stream *stm;
+ php_stream *stm = NULL;
php_stream_from_zval_no_verify(stm, parameter);
if (stm) {
+ zend_string *mem = php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0);
zval_ptr_dtor(parameter);
- ZVAL_STR(parameter, php_stream_copy_to_mem(stm, PHP_STREAM_COPY_ALL, 0));
+ ZVAL_STR(parameter, mem ? mem : STR_EMPTY_ALLOC());
} else {
pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource");
return 0;