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-05 21:50:34 +0100
commitcff9e16a124f84e8c03a7a4315c8e052db530d0c (patch)
tree4d050600b26f0704d402afaa7d3cace1499ab719 /ext/pdo_sqlite/sqlite_statement.c
parent1406f80135e87532269a50cd143cfdd911a1368a (diff)
downloadphp-git-cff9e16a124f84e8c03a7a4315c8e052db530d0c.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;