From 1ac62a4352f7d480b1ecdb72f411a1088dda3346 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 b03e53d6..d2a015ba 100644 --- a/repmgr-action-standby.c +++ b/repmgr-action-standby.c @@ -7789,7 +7789,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) @@ -7798,13 +7800,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;