From 25b5bbc7a18f438d2b9ba3806e3a40599c64417a Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Thu, 11 Jan 2007 16:47:33 +0000 Subject: [PATCH] MFH --- ext/pgsql/pgsql.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 1d8039d155..e675210d22 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -216,7 +216,7 @@ ZEND_GET_MODULE(pgsql) static int le_link, le_plink, le_result, le_lofp, le_string; -ZEND_DECLARE_MODULE_GLOBALS(pgsql); +ZEND_DECLARE_MODULE_GLOBALS(pgsql) /* {{{ _php_pgsql_trim_message */ static char * _php_pgsql_trim_message(const char *message, int *len) @@ -2658,10 +2658,11 @@ PHP_FUNCTION(pg_copy_from) zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(pg_rows), &pos); while (zend_hash_get_current_data_ex(Z_ARRVAL_P(pg_rows), (void **) &tmp, &pos) == SUCCESS) { convert_to_string_ex(tmp); - query = (char *)emalloc(Z_STRLEN_PP(tmp) +2); - strcpy(query, Z_STRVAL_PP(tmp)); - if(*(query+Z_STRLEN_PP(tmp)-1) != '\n') - strcat(query, "\n"); + query = (char *)emalloc(Z_STRLEN_PP(tmp) + 2); + strlcpy(query, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp) + 2); + if(Z_STRLEN_PP(tmp) > 0 && *(query + Z_STRLEN_PP(tmp) - 1) != '\n') { + strlcat(query, "\n", Z_STRLEN_PP(tmp) + 2); + } if (PQputline(pgsql, query)) { efree(query); PHP_PQ_ERROR("copy failed: %s", pgsql); -- 2.40.0