From 5cff7fab646b05f2cce9b78664da31bb16839eb0 Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Tue, 24 Nov 2020 15:32:21 +0900 Subject: [PATCH] Avoid compiler warnings for various strncpy() operations Here the compiler may complain that the source length is being used, though in all cases the source length was previously used to define the length of the destination buffer, so it's not actually a problem. --- configfile.c | 7 +++++-- repmgr-action-standby.c | 16 +++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/configfile.c b/configfile.c index 83f2a0c4..2d66008d 100644 --- a/configfile.c +++ b/configfile.c @@ -2250,6 +2250,7 @@ print_event_notification_list(EventNotificationList *list) PQExpBufferData buf; char *ptr; EventNotificationListCell *cell; + int ptr_len; initPQExpBuffer(&buf); cell = list->head; @@ -2264,8 +2265,10 @@ print_event_notification_list(EventNotificationList *list) cell = cell->next; } - ptr = palloc0(strlen(buf.data) + 1); - strncpy(ptr, buf.data, strlen(buf.data)); + ptr_len = strlen(buf.data); + ptr = palloc0(ptr_len + 1); + + strncpy(ptr, buf.data, ptr_len); termPQExpBuffer(&buf); diff --git a/repmgr-action-standby.c b/repmgr-action-standby.c index 8bd64c61..1d80e8da 100644 --- a/repmgr-action-standby.c +++ b/repmgr-action-standby.c @@ -7773,7 +7773,9 @@ static void tablespace_data_append(TablespaceDataList *list, const char *name, const char *oid, const char *location) { TablespaceDataListCell *cell = NULL; - + int oid_len = strlen(oid); + int name_len = strlen(name); + int location_len = strlen(location); cell = (TablespaceDataListCell *) pg_malloc0(sizeof(TablespaceDataListCell)); if (cell == NULL) @@ -7782,13 +7784,13 @@ tablespace_data_append(TablespaceDataList *list, const char *name, const char *o exit(ERR_OUT_OF_MEMORY); } - cell->oid = pg_malloc(1 + strlen(oid)); - cell->name = pg_malloc(1 + strlen(name)); - cell->location = pg_malloc(1 + strlen(location)); + cell->oid = pg_malloc0(1 + oid_len); + cell->name = pg_malloc0(1 + name_len); + cell->location = pg_malloc0(1 + location_len); - strncpy(cell->oid, oid, 1 + strlen(oid)); - strncpy(cell->name, name, 1 + strlen(name)); - strncpy(cell->location, location, 1 + strlen(location)); + strncpy(cell->oid, oid, oid_len); + strncpy(cell->name, name, name_len); + strncpy(cell->location, location, location_len); if (list->tail) list->tail->next = cell;