summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/libpq/hba.c7
-rw-r--r--src/backend/postmaster/pgstat.c2
-rw-r--r--src/backend/regex/regerror.c2
-rw-r--r--src/backend/replication/logical/logical.c4
-rw-r--r--src/backend/replication/slot.c3
-rw-r--r--src/backend/utils/adt/datetime.c2
-rw-r--r--src/backend/utils/adt/name.c2
-rw-r--r--src/backend/utils/adt/varlena.c2
-rw-r--r--src/backend/utils/error/elog.c2
9 files changed, 13 insertions, 13 deletions
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index f75c4b88be8..9cde6a21ce9 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -1996,6 +1996,8 @@ check_ident_usermap(IdentLine *identLine, const char *usermap_name,
if ((ofs = strstr(identLine->pg_role, "\\1")) != NULL)
{
+ int offset;
+
/* substitution of the first argument requested */
if (matches[1].rm_so < 0)
{
@@ -2012,8 +2014,9 @@ check_ident_usermap(IdentLine *identLine, const char *usermap_name,
* plus null terminator
*/
regexp_pgrole = palloc0(strlen(identLine->pg_role) - 2 + (matches[1].rm_eo - matches[1].rm_so) + 1);
- strncpy(regexp_pgrole, identLine->pg_role, (ofs - identLine->pg_role));
- memcpy(regexp_pgrole + strlen(regexp_pgrole),
+ offset = ofs - identLine->pg_role;
+ memcpy(regexp_pgrole, identLine->pg_role, offset);
+ memcpy(regexp_pgrole + offset,
ident_user + matches[1].rm_so,
matches[1].rm_eo - matches[1].rm_so);
strcat(regexp_pgrole, ofs + 2);
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 827ad713b58..268bcd58fd8 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -3095,7 +3095,7 @@ pgstat_send_archiver(const char *xlog, bool failed)
*/
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_ARCHIVER);
msg.m_failed = failed;
- strncpy(msg.m_xlog, xlog, sizeof(msg.m_xlog));
+ StrNCpy(msg.m_xlog, xlog, sizeof(msg.m_xlog));
msg.m_timestamp = GetCurrentTimestamp();
pgstat_send(&msg, sizeof(msg));
}
diff --git a/src/backend/regex/regerror.c b/src/backend/regex/regerror.c
index f863ee7344f..f2fe696425c 100644
--- a/src/backend/regex/regerror.c
+++ b/src/backend/regex/regerror.c
@@ -111,7 +111,7 @@ pg_regerror(int errcode, /* error code, or REG_ATOI or REG_ITOA */
strcpy(errbuf, msg);
else
{ /* truncate to fit */
- strncpy(errbuf, msg, errbuf_size - 1);
+ memcpy(errbuf, msg, errbuf_size - 1);
errbuf[errbuf_size - 1] = '\0';
}
}
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 939831b5576..30baa45383a 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -244,9 +244,7 @@ CreateInitDecodingContext(char *plugin,
/* register output plugin name with slot */
SpinLockAcquire(&slot->mutex);
- strncpy(NameStr(slot->data.plugin), plugin,
- NAMEDATALEN);
- NameStr(slot->data.plugin)[NAMEDATALEN - 1] = '\0';
+ StrNCpy(NameStr(slot->data.plugin), plugin, NAMEDATALEN);
SpinLockRelease(&slot->mutex);
/*
diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c
index 5f64e494c5d..dd7ff0f99a2 100644
--- a/src/backend/replication/slot.c
+++ b/src/backend/replication/slot.c
@@ -266,8 +266,7 @@ ReplicationSlotCreate(const char *name, bool db_specific,
slot->data.persistency = persistency;
slot->data.xmin = InvalidTransactionId;
slot->effective_xmin = InvalidTransactionId;
- strncpy(NameStr(slot->data.name), name, NAMEDATALEN);
- NameStr(slot->data.name)[NAMEDATALEN - 1] = '\0';
+ StrNCpy(NameStr(slot->data.name), name, NAMEDATALEN);
slot->data.database = db_specific ? MyDatabaseId : InvalidOid;
slot->data.restart_lsn = InvalidXLogRecPtr;
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 3b0402e3cfb..2a44b6e5037 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -4052,7 +4052,7 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, bool print_tz, int tz, const char
day = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday);
tm->tm_wday = j2day(day);
- strncpy(str, days[tm->tm_wday], 3);
+ memcpy(str, days[tm->tm_wday], 3);
strcpy(str + 3, " ");
if (DateOrder == DATEORDER_DMY)
diff --git a/src/backend/utils/adt/name.c b/src/backend/utils/adt/name.c
index fa13a9a5897..b6c6e393358 100644
--- a/src/backend/utils/adt/name.c
+++ b/src/backend/utils/adt/name.c
@@ -192,7 +192,7 @@ namecpy(Name n1, Name n2)
{
if (!n1 || !n2)
return -1;
- strncpy(NameStr(*n1), NameStr(*n2), NAMEDATALEN);
+ StrNCpy(NameStr(*n1), NameStr(*n2), NAMEDATALEN);
return 0;
}
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index cfa192193b4..f48ce4901ca 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -2936,7 +2936,7 @@ SplitIdentifierString(char *rawstring, char separator,
len = endp - curname;
downname = downcase_truncate_identifier(curname, len, false);
Assert(strlen(downname) <= len);
- strncpy(curname, downname, len);
+ strncpy(curname, downname, len); /* strncpy is required here */
pfree(downname);
}
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index bee2c92301e..310c5bbffa0 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -2240,7 +2240,7 @@ setup_formatted_log_time(void)
/* 'paste' milliseconds into place... */
sprintf(msbuf, ".%03d", (int) (tv.tv_usec / 1000));
- strncpy(formatted_log_time + 19, msbuf, 4);
+ memcpy(formatted_log_time + 19, msbuf, 4);
}
/*