Skip to content

Commit 851d6c6

Browse files
committed
pg_copy_from using zend_string on success.
1 parent da8f483 commit 851d6c6

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

ext/pgsql/pgsql.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3273,18 +3273,14 @@ PHP_FUNCTION(pg_copy_from)
32733273
if (UNEXPECTED(!tmp)) {
32743274
return;
32753275
}
3276-
query = (char *)emalloc(ZSTR_LEN(tmp) + 2);
3277-
strlcpy(query, ZSTR_VAL(tmp), ZSTR_LEN(tmp) + 2);
3278-
if (ZSTR_LEN(tmp) > 0 && *(query + ZSTR_LEN(tmp) - 1) != '\n') {
3279-
strlcat(query, "\n", ZSTR_LEN(tmp) + 2);
3276+
if (ZSTR_LEN(tmp) > 0 && ZSTR_VAL(tmp)[ZSTR_LEN(tmp)] != '\n') {
3277+
ZSTR_VAL(tmp)[ZSTR_LEN(tmp) ] = '\n';
32803278
}
3281-
if (PQputCopyData(pgsql, query, (int)strlen(query)) != 1) {
3282-
efree(query);
3279+
if (PQputCopyData(pgsql, ZSTR_VAL(tmp), ZSTR_LEN(tmp)) != 1) {
32833280
zend_string_release(tmp);
32843281
PHP_PQ_ERROR("copy failed: %s", pgsql);
32853282
RETURN_FALSE;
32863283
}
3287-
efree(query);
32883284
zend_string_release(tmp);
32893285
} ZEND_HASH_FOREACH_END();
32903286

0 commit comments

Comments
 (0)