aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/ecpglib/descriptor.c2
-rw-r--r--src/interfaces/ecpg/pgtypeslib/common.c6
2 files changed, 3 insertions, 5 deletions
diff --git a/src/interfaces/ecpg/ecpglib/descriptor.c b/src/interfaces/ecpg/ecpglib/descriptor.c
index f38bf343f0b..8fdf5606c09 100644
--- a/src/interfaces/ecpg/ecpglib/descriptor.c
+++ b/src/interfaces/ecpg/ecpglib/descriptor.c
@@ -218,7 +218,7 @@ get_char_item(int lineno, void *var, enum ECPGttype vartype, char *value, int va
(struct ECPGgeneric_varchar *) var;
if (varcharsize == 0)
- strncpy(variable->arr, value, strlen(value));
+ memcpy(variable->arr, value, strlen(value));
else
strncpy(variable->arr, value, varcharsize);
diff --git a/src/interfaces/ecpg/pgtypeslib/common.c b/src/interfaces/ecpg/pgtypeslib/common.c
index ae29b6c4ab8..2adb6809e20 100644
--- a/src/interfaces/ecpg/pgtypeslib/common.c
+++ b/src/interfaces/ecpg/pgtypeslib/common.c
@@ -42,10 +42,8 @@ pgtypes_fmt_replace(union un_fmt_comb replace_val, int replace_type, char **outp
i = strlen(replace_val.str_val);
if (i + 1 <= *pstr_len)
{
- /*
- * copy over i + 1 bytes, that includes the tailing terminator
- */
- strncpy(*output, replace_val.str_val, i + 1);
+ /* include trailing terminator in what we copy */
+ memcpy(*output, replace_val.str_val, i + 1);
*pstr_len -= i;
*output += i;
if (replace_type == PGTYPES_TYPE_STRING_MALLOCED)