summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-09-06 12:40:56 +0000
committerAntony Dovgal <tony2001@php.net>2006-09-06 12:40:56 +0000
commit37635d93e6861b8dedb30c39a563ac93515dc19c (patch)
tree9ac1db38eca83fa277c12ac21200c0b68c11c721
parent7d7f84562c8c2cf651354c9daeee0805ad0362e6 (diff)
downloadphp-git-37635d93e6861b8dedb30c39a563ac93515dc19c.tar.gz
fix leak in pg_copy_to() when invalid resource was passed
-rw-r--r--ext/pgsql/pgsql.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 313340bac5..22d855cd75 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -3309,12 +3309,13 @@ PHP_FUNCTION(pg_copy_to)
if (!pg_delim) {
pg_delim = "\t";
}
+
+ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+
if (!pg_null_as) {
pg_null_as = safe_estrdup("\\\\N");
}
- ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", le_link, le_plink);
-
query = (char *)emalloc(strlen(query_template) + strlen(table_name) + strlen(pg_null_as) + 1);
sprintf(query, "COPY \"%s\" TO STDOUT DELIMITERS '%c' WITH NULL AS '%s'",
table_name, *pg_delim, pg_null_as);