aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/jsonb_util.c
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2015-10-05 10:06:29 -0400
committerNoah Misch <noah@leadboat.com>2015-10-05 10:06:34 -0400
commita0c02ed5b4ef24d91a6fb22d447fc5cba8aeb146 (patch)
treefcda4cfb69251d3ae24974b2e5d183f244c341e6 /src/backend/utils/adt/jsonb_util.c
parent16d58b5b534fa783e2259b407c237fc166ebf7e4 (diff)
downloadpostgresql-a0c02ed5b4ef24d91a6fb22d447fc5cba8aeb146.tar.gz
postgresql-a0c02ed5b4ef24d91a6fb22d447fc5cba8aeb146.zip
Prevent stack overflow in container-type functions.
A range type can name another range type as its subtype, and a record type can bear a column of another record type. Consequently, functions like range_cmp() and record_recv() are recursive. Functions at risk include operator family members and referents of pg_type regproc columns. Treat as recursive any such function that looks up and calls the same-purpose function for a record column type or the range subtype. Back-patch to 9.0 (all supported versions). An array type's element type is never itself an array type, so array functions are unaffected. Recursion depth proportional to array dimensionality, found in array_dim_to_jsonb(), is fine thanks to MAXDIM.
Diffstat (limited to 'src/backend/utils/adt/jsonb_util.c')
0 files changed, 0 insertions, 0 deletions