From e0ac05670f751c28790bf306200664cc8d78e950 Mon Sep 17 00:00:00 2001 From: lamentxu <1372449351@qq.com> Date: Thu, 2 Apr 2026 10:05:42 +0800 Subject: [PATCH 1/2] Update pgsql.c --- ext/pgsql/pgsql.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 3f4b606b5106..360189d051da 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -3428,12 +3428,9 @@ static zend_result pgsql_copy_from_query(PGconn *pgsql, PGresult *pgsql_result, int result; if (ZSTR_LEN(tmp) > 0 && ZSTR_VAL(tmp)[ZSTR_LEN(tmp) - 1] != '\n') { - char *zquery = emalloc(ZSTR_LEN(tmp) + 2); - memcpy(zquery, ZSTR_VAL(tmp), ZSTR_LEN(tmp) + 1); - zquery[ZSTR_LEN(tmp)] = '\n'; - zquery[ZSTR_LEN(tmp) + 1] = '\0'; - result = PQputCopyData(pgsql, zquery, ZSTR_LEN(tmp) + 1); - efree(zquery); + zend_string *new_tmp = zend_string_concat2(ZSTR_VAL(tmp), ZSTR_LEN(tmp), "\n", 1); + result = PQputCopyData(pgsql, ZSTR_VAL(new_tmp), ZSTR_LEN(new_tmp)); + zend_string_release(new_tmp); } else { result = PQputCopyData(pgsql, ZSTR_VAL(tmp), ZSTR_LEN(tmp)); } From 7598236ad69417e08c547a4da112a5a7551e5902 Mon Sep 17 00:00:00 2001 From: lamentxu <1372449351@qq.com> Date: Thu, 2 Apr 2026 18:29:07 +0800 Subject: [PATCH 2/2] Update pgsql.c --- ext/pgsql/pgsql.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 360189d051da..2ddbf0af2309 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -3428,9 +3428,12 @@ static zend_result pgsql_copy_from_query(PGconn *pgsql, PGresult *pgsql_result, int result; if (ZSTR_LEN(tmp) > 0 && ZSTR_VAL(tmp)[ZSTR_LEN(tmp) - 1] != '\n') { - zend_string *new_tmp = zend_string_concat2(ZSTR_VAL(tmp), ZSTR_LEN(tmp), "\n", 1); - result = PQputCopyData(pgsql, ZSTR_VAL(new_tmp), ZSTR_LEN(new_tmp)); - zend_string_release(new_tmp); + char *zquery = emalloc(ZSTR_LEN(tmp) + 2); + memcpy(zquery, ZSTR_VAL(tmp), ZSTR_LEN(tmp)); + zquery[ZSTR_LEN(tmp)] = '\n'; + zquery[ZSTR_LEN(tmp) + 1] = '\0'; + result = PQputCopyData(pgsql, zquery, ZSTR_LEN(tmp) + 1); + efree(zquery); } else { result = PQputCopyData(pgsql, ZSTR_VAL(tmp), ZSTR_LEN(tmp)); }