diff options
author | Anatol Belski <ab@php.net> | 2015-11-05 21:50:34 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2015-11-08 04:24:16 +0100 |
commit | 12208dc8fc3eec47e25dc9b3f034a3ca11dc338c (patch) | |
tree | b8a8aa961e1f13656a7159849b8210e32e634a0d /ext/pdo_sqlite/sqlite_statement.c | |
parent | 5fad12088558c8d7f77a3b9c4fe5573415c03e54 (diff) | |
download | php-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.c | 5 |
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 = ¶m->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; |