mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Fix uninitialized memory bug
Have interested callers of find_inheritance_children set the detached_exist value to false prior to calling it, so that that routine only has to set it true in the rare cases where it is necessary. Don't touch it otherwise. Per buildfarm member thorntail (which reported a UBSan failure here).
This commit is contained in:
parent
84f15ccd4c
commit
43b55ec4bc
@ -53,7 +53,7 @@ typedef struct SeenRelsEntry
|
||||
* against possible DROPs of child relations.
|
||||
*
|
||||
* If a partition's pg_inherits row is marked "detach pending",
|
||||
* *detached_exist (if not null) is set true, otherwise it is set false.
|
||||
* *detached_exist (if not null) is set true.
|
||||
*
|
||||
* If omit_detached is true and there is an active snapshot (not the same as
|
||||
* the catalog snapshot used to scan pg_inherits!) and a pg_inherits tuple
|
||||
@ -84,9 +84,6 @@ find_inheritance_children(Oid parentrelId, bool omit_detached,
|
||||
if (!has_subclass(parentrelId))
|
||||
return NIL;
|
||||
|
||||
if (detached_exist)
|
||||
*detached_exist = false;
|
||||
|
||||
/*
|
||||
* Scan pg_inherits and build a working array of subclass OIDs.
|
||||
*/
|
||||
|
@ -131,6 +131,7 @@ RelationBuildPartitionDesc(Relation rel, bool omit_detached)
|
||||
* concurrently, whatever this function returns will be accurate as of
|
||||
* some well-defined point in time.
|
||||
*/
|
||||
detached_exist = false;
|
||||
inhoids = find_inheritance_children(RelationGetRelid(rel), omit_detached,
|
||||
NoLock, &detached_exist);
|
||||
nparts = list_length(inhoids);
|
||||
|
Loading…
x
Reference in New Issue
Block a user