]> granicus.if.org Git - php/commitdiff
MFH:
authorFelipe Pena <felipe@php.net>
Sat, 11 Oct 2008 19:05:30 +0000 (19:05 +0000)
committerFelipe Pena <felipe@php.net>
Sat, 11 Oct 2008 19:05:30 +0000 (19:05 +0000)
- 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)

ext/pdo_pgsql/pgsql_statement.c

index 81377e6bcc6ef3d47764602598397e5ff7a85193..6bd434f99a13cd7ab52ee7f5ccd4933693d45ac5 100644 (file)
@@ -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(&param->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 */