]> granicus.if.org Git - php/commitdiff
fix NULL deref in pdo_firebird
authorAnatol Belski <ab@php.net>
Thu, 5 Nov 2015 21:11:00 +0000 (22:11 +0100)
committerAnatol Belski <ab@php.net>
Thu, 5 Nov 2015 21:11:00 +0000 (22:11 +0100)
ref #70862

ext/pdo_firebird/firebird_statement.c

index 1e0151dc9d9a7732c14d0fd01361159859c941c6..5eaf530415ac34cbbbcd1ca4982601e484630e95 100644 (file)
@@ -523,12 +523,13 @@ static int firebird_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_dat
                        }
 
                        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;