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;