diff options
author | Felipe Pena <felipe@php.net> | 2008-10-11 19:03:23 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2008-10-11 19:03:23 +0000 |
commit | 9552f1a573c559b1e081a363164f83ecbeab87a9 (patch) | |
tree | 192d900be97978538be0b5248fc3bcdb99a08502 /ext/pdo_pgsql/pgsql_statement.c | |
parent | 0c183be27f1ac667227f63da346df845294d228b (diff) | |
download | php-git-9552f1a573c559b1e081a363164f83ecbeab87a9.tar.gz |
- Fixed bug #46249 (pdo_pgsql always fill in NULL for empty BLOB)
- Fixed bug #46274 (pdo_pgsql - Segfault when using PDO::ATTR_STRINGIFY_FETCHES and blob)
Diffstat (limited to 'ext/pdo_pgsql/pgsql_statement.c')
-rw-r--r-- | ext/pdo_pgsql/pgsql_statement.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index 7bd10a67e0..900e57cc91 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -293,10 +293,16 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data * S->param_types[param->paramno] = OIDOID; return 1; } else { + int len; + SEPARATE_ZVAL_IF_NOT_REF(¶m->parameter); Z_TYPE_P(param->parameter) = IS_STRING; - Z_STRLEN_P(param->parameter) = php_stream_copy_to_mem(stm, - &Z_STRVAL_P(param->parameter), PHP_STREAM_COPY_ALL, 0); + + if ((len = php_stream_copy_to_mem(stm, &Z_STRVAL_P(param->parameter), PHP_STREAM_COPY_ALL, 0)) > 0) { + Z_STRLEN_P(param->parameter) = len; + } else { + ZVAL_EMPTY_STRING(param->parameter); + } } } else { /* expected a stream resource */ |