mirror of
https://github.com/postgres/postgres.git
synced 2026-05-27 20:27:28 -04:00
Add stack depth check to QueueFKConstraintValidation().
QueueFKConstraintValidation() recurses through the partition hierarchy to queue child constraint validations and to mark child rows as validated. With a sufficiently deep partition tree, this can result in a stack-overflow crash. Defend against that as we do elsewhere. Bug: #19482 Reported-by: Alexander Lakhin <exclusion@gmail.com> Author: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/19482-4cc37cbf52d55235@postgresql.org Backpatch-through: 18
This commit is contained in:
parent
1588d89af2
commit
61ea5cc6a6
1 changed files with 3 additions and 0 deletions
|
|
@ -13281,6 +13281,9 @@ QueueFKConstraintValidation(List **wqueue, Relation conrel, Relation fkrel,
|
|||
HeapTuple copyTuple;
|
||||
Form_pg_constraint copy_con;
|
||||
|
||||
/* since this function recurses, it could be driven to stack overflow */
|
||||
check_stack_depth();
|
||||
|
||||
con = (Form_pg_constraint) GETSTRUCT(contuple);
|
||||
Assert(con->contype == CONSTRAINT_FOREIGN);
|
||||
Assert(!con->convalidated);
|
||||
|
|
|
|||
Loading…
Reference in a new issue