mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-03 12:17:18 +02:00
Avoid memcpy() with a NULL source pointer and count == 0
When memcpy() is called on a pointer, the compiler is entitled to assume
that the pointer is not null, which can lead to optimizing nearby code
in potentially undesirable ways. We still want such optimizations
(gcc's -fdelete-null-pointer-checks) in cases where they're valid.
Related: commit 13bba02271
.
Backpatch to pg11, where this particular instance appeared.
Reported-by: Ranier Vilela <ranier.vf@gmail.com>
Reported-by: Zhihong Yu <zyu@yugabyte.com>
Discussion: https://postgr.es/m/CAEudQApUndmQkr5fLrCKXQ7+ib44i7S+Kk93pyVThS85PnG3bQ@mail.gmail.com
Discussion: https://postgr.es/m/CALNJ-vSdhwSM5f4tnNn1cdLHvXMVe_S+V3nR5GwNrmCPNB2VtQ@mail.gmail.com
This commit is contained in:
parent
d5706ad7b7
commit
49aaabdf8d
@ -950,15 +950,17 @@ DefineIndex(Oid relationId,
|
|||||||
|
|
||||||
if (partitioned)
|
if (partitioned)
|
||||||
{
|
{
|
||||||
|
PartitionDesc partdesc;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unless caller specified to skip this step (via ONLY), process each
|
* Unless caller specified to skip this step (via ONLY), process each
|
||||||
* partition to make sure they all contain a corresponding index.
|
* partition to make sure they all contain a corresponding index.
|
||||||
*
|
*
|
||||||
* If we're called internally (no stmt->relation), recurse always.
|
* If we're called internally (no stmt->relation), recurse always.
|
||||||
*/
|
*/
|
||||||
if (!stmt->relation || stmt->relation->inh)
|
partdesc = RelationGetPartitionDesc(rel);
|
||||||
|
if ((!stmt->relation || stmt->relation->inh) && partdesc->nparts > 0)
|
||||||
{
|
{
|
||||||
PartitionDesc partdesc = RelationGetPartitionDesc(rel);
|
|
||||||
int nparts = partdesc->nparts;
|
int nparts = partdesc->nparts;
|
||||||
Oid *part_oids = palloc(sizeof(Oid) * nparts);
|
Oid *part_oids = palloc(sizeof(Oid) * nparts);
|
||||||
bool invalidate_parent = false;
|
bool invalidate_parent = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user