Fix memory allocation mistake
authorPeter Eisentraut <[email protected]>
Wed, 6 Nov 2019 13:20:29 +0000 (14:20 +0100)
committerPeter Eisentraut <[email protected]>
Wed, 6 Nov 2019 13:20:29 +0000 (14:20 +0100)
The previous code was allocating more memory than necessary because
the formula used the wrong data type.

Reported-by: Jehan-Guillaume de Rorthais <[email protected]>
Discussion: https://www.postgresql.org/message-id/20191105172918.3e32a446@firost

src/backend/replication/logical/relation.c

index 85269c037de814eea1beb044054ed610c2ea2831..f938d1fa4859dd36686af2af1cde7d17a4ebd027 100644 (file)
@@ -267,7 +267,7 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
                 */
                desc = RelationGetDescr(entry->localrel);
                oldctx = MemoryContextSwitchTo(LogicalRepRelMapContext);
-               entry->attrmap = palloc(desc->natts * sizeof(int));
+               entry->attrmap = palloc(desc->natts * sizeof(AttrNumber));
                MemoryContextSwitchTo(oldctx);
 
                found = 0;