mirror of
https://github.com/postgres/postgres.git
synced 2026-02-20 08:20:55 -05:00
Fix uninitialized slot array access during the upgrade.
Commit 29d0a77fa introduced fetching slot information from the old cluster
but didn't initialize the required array in all the code paths. So when
trying to access the array in verbose mode for the new cluster, it leads
to an uninitialized memory access.
Author: Vignesh C
Discussion: http://postgr.es/m/CALDaNm1tntGP5=CtMz=v+k3_PGv7kE9t6iWSgX-QiurAaFkhZw@mail.gmail.com
This commit is contained in:
parent
108161bcb9
commit
a7db71ed27
1 changed files with 2 additions and 6 deletions
|
|
@ -408,7 +408,7 @@ get_db_infos(ClusterInfo *cluster)
|
|||
i_spclocation = PQfnumber(res, "spclocation");
|
||||
|
||||
ntups = PQntuples(res);
|
||||
dbinfos = (DbInfo *) pg_malloc(sizeof(DbInfo) * ntups);
|
||||
dbinfos = (DbInfo *) pg_malloc0(sizeof(DbInfo) * ntups);
|
||||
|
||||
for (tupnum = 0; tupnum < ntups; tupnum++)
|
||||
{
|
||||
|
|
@ -636,15 +636,11 @@ get_old_cluster_logical_slot_infos(DbInfo *dbinfo, bool live_check)
|
|||
PGconn *conn;
|
||||
PGresult *res;
|
||||
LogicalSlotInfo *slotinfos = NULL;
|
||||
int num_slots = 0;
|
||||
int num_slots;
|
||||
|
||||
/* Logical slots can be migrated since PG17. */
|
||||
if (GET_MAJOR_VERSION(old_cluster.major_version) <= 1600)
|
||||
{
|
||||
dbinfo->slot_arr.slots = slotinfos;
|
||||
dbinfo->slot_arr.nslots = num_slots;
|
||||
return;
|
||||
}
|
||||
|
||||
conn = connectToServer(&old_cluster, dbinfo->db_name);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue