summaryrefslogtreecommitdiff
path: root/ext/pgsql
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2010-04-20 14:11:53 +0000
committerFelipe Pena <felipe@php.net>2010-04-20 14:11:53 +0000
commit8c14acfc82e7ab5d5e2a8c3f817eb85a513285ad (patch)
treec9de841d8cebd66b420fabf7e853782f711dd26a /ext/pgsql
parent6d951e2ded3943cc0d0c8aaf7f56bf188611f5dc (diff)
downloadphp-git-8c14acfc82e7ab5d5e2a8c3f817eb85a513285ad.tar.gz
- Fixed bug #51609 (pg_copy_to: Invalid results when using fourth parameter)
Diffstat (limited to 'ext/pgsql')
-rw-r--r--ext/pgsql/pgsql.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 92725ee996..5fbfd5870e 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -3735,7 +3735,7 @@ PHP_FUNCTION(pg_copy_to)
{
zval *pgsql_link;
char *table_name, *pg_delim = NULL, *pg_null_as = NULL;
- int table_name_len, pg_delim_len, pg_null_as_len;
+ int table_name_len, pg_delim_len, pg_null_as_len, free_pg_null = 0;
char *query;
int id = -1;
PGconn *pgsql;
@@ -3762,6 +3762,7 @@ PHP_FUNCTION(pg_copy_to)
if (!pg_null_as) {
pg_null_as = safe_estrdup("\\\\N");
+ free_pg_null = 1;
}
if (memchr(table_name, '.', table_name_len)) {
@@ -3774,7 +3775,9 @@ PHP_FUNCTION(pg_copy_to)
PQclear(pgsql_result);
}
pgsql_result = PQexec(pgsql, query);
- efree(pg_null_as);
+ if (free_pg_null) {
+ efree(pg_null_as);
+ }
efree(query);
if (pgsql_result) {