Use safer allocation routines in more places of the tree

This is part of a more global effort to modernize the code tree with
safer allocation functions, which offer more protection in terms of:
- stronger type safety guarantees
- size overflow checks, particulary for arrays.

This set of updates includes allocation changes based on
palloc_object(), palloc_array() and repalloc_array().  This work is
similar to 1b105f9472bd, expanding more the new APIs in the tree in an
incremental fashion.

Author: Tristan Partin <[email protected]>
Discussion: https://postgr.es/m/[email protected]

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/51c43a5dbd86ad8461544e54c00bd9f487abfacd

Modified Files
--------------
contrib/btree_gist/btree_bool.c                    |  2 +-
contrib/btree_gist/btree_cash.c                    |  2 +-
contrib/btree_gist/btree_date.c                    |  2 +-
contrib/btree_gist/btree_enum.c                    |  2 +-
contrib/btree_gist/btree_float4.c                  |  2 +-
contrib/btree_gist/btree_float8.c                  |  2 +-
contrib/btree_gist/btree_inet.c                    |  2 +-
contrib/btree_gist/btree_int2.c                    |  2 +-
contrib/btree_gist/btree_int4.c                    |  2 +-
contrib/btree_gist/btree_int8.c                    |  2 +-
contrib/btree_gist/btree_interval.c                |  2 +-
contrib/btree_gist/btree_macaddr.c                 |  2 +-
contrib/btree_gist/btree_macaddr8.c                |  2 +-
contrib/btree_gist/btree_oid.c                     |  2 +-
contrib/btree_gist/btree_time.c                    |  2 +-
contrib/btree_gist/btree_ts.c                      |  2 +-
contrib/btree_gist/btree_utils_num.c               | 12 +++---
contrib/btree_gist/btree_uuid.c                    |  2 +-
contrib/dict_xsyn/dict_xsyn.c                      |  2 +-
contrib/file_fdw/file_fdw.c                        |  4 +-
contrib/hstore/hstore_gin.c                        |  6 +--
contrib/hstore/hstore_io.c                         | 18 ++++----
contrib/hstore/hstore_op.c                         | 18 ++++----
contrib/pageinspect/btreefuncs.c                   |  2 +-
contrib/pageinspect/ginfuncs.c                     |  2 +-
contrib/pg_logicalinspect/pg_logicalinspect.c      |  4 +-
contrib/pg_plan_advice/pgpa_scan.c                 |  2 +-
contrib/pg_stash_advice/stashpersist.c             |  5 +--
contrib/pg_stat_statements/pg_stat_statements.c    |  2 +-
contrib/pg_trgm/trgm_gist.c                        |  2 +-
contrib/pg_trgm/trgm_regexp.c                      |  5 +--
contrib/pg_visibility/pg_visibility.c              |  5 +--
contrib/pgrowlocks/pgrowlocks.c                    |  8 ++--
contrib/postgres_fdw/connection.c                  |  4 +-
contrib/postgres_fdw/postgres_fdw.c                | 13 +++---
contrib/seg/seg.c                                  |  7 ++--
contrib/tablefunc/tablefunc.c                      |  8 ++--
contrib/xml2/xpath.c                               |  4 +-
contrib/xml2/xslt_proc.c                           |  5 +--
doc/src/sgml/xfunc.sgml                            |  8 ++--
src/backend/access/brin/brin_minmax_multi.c        |  4 +-
src/backend/access/common/printtup.c               |  3 +-
src/backend/access/common/reloptions.c             |  7 ++--
src/backend/access/common/tupdesc.c                |  6 +--
src/backend/access/gin/gindatapage.c               |  4 +-
src/backend/access/gin/ginget.c                    |  8 ++--
src/backend/access/gin/gininsert.c                 |  6 +--
src/backend/access/gin/ginpostinglist.c            |  8 ++--
src/backend/access/gin/ginscan.c                   | 10 ++---
src/backend/access/gist/gistbuildbuffers.c         | 14 +++----
src/backend/access/gist/gistget.c                  |  8 +---
src/backend/access/gist/gistproc.c                 | 10 ++---
src/backend/access/gist/gistscan.c                 |  8 ++--
src/backend/access/gist/gistsplit.c                | 12 +++---
src/backend/access/gist/gistxlog.c                 |  2 +-
src/backend/access/heap/heapam.c                   |  4 +-
src/backend/access/heap/vacuumlazy.c               |  3 +-
src/backend/access/nbtree/nbtinsert.c              | 10 ++---
src/backend/access/nbtree/nbtpage.c                |  5 +--
src/backend/access/nbtree/nbtpreprocesskeys.c      | 20 ++++-----
src/backend/access/nbtree/nbtree.c                 |  2 +-
src/backend/access/tablesample/bernoulli.c         |  2 +-
src/backend/access/transam/multixact.c             |  2 +-
src/backend/access/transam/twophase.c              |  4 +-
src/backend/access/transam/xact.c                  |  5 +--
src/backend/access/transam/xloginsert.c            |  5 +--
src/backend/backup/basebackup_incremental.c        |  2 +-
src/backend/catalog/aclchk.c                       |  2 +-
src/backend/catalog/dependency.c                   | 21 ++++------
src/backend/catalog/heap.c                         |  2 +-
src/backend/catalog/pg_constraint.c                |  6 +--
src/backend/catalog/pg_inherits.c                  |  4 +-
src/backend/catalog/pg_shdepend.c                  |  7 +---
src/backend/commands/alter.c                       | 18 ++++----
src/backend/commands/analyze.c                     | 49 ++++++++++------------
src/backend/commands/async.c                       |  2 +-
src/backend/commands/collationcmds.c               |  5 +--
src/backend/commands/copyfrom.c                    | 18 ++++----
src/backend/commands/copyfromparse.c               |  4 +-
src/backend/commands/copyto.c                      |  4 +-
src/backend/commands/dbcommands.c                  |  2 +-
src/backend/commands/explain.c                     |  7 ++--
src/backend/commands/explain_dr.c                  |  2 +-
src/backend/commands/explain_state.c               | 10 ++---
src/backend/commands/extension.c                   |  2 +-
src/backend/commands/functioncmds.c                | 14 +++----
src/backend/commands/policy.c                      |  2 +-
src/backend/commands/subscriptioncmds.c            |  6 +--
src/backend/commands/tablecmds.c                   |  7 ++--
src/backend/commands/tablespace.c                  |  2 +-
src/backend/commands/trigger.c                     | 28 ++++++-------
src/backend/commands/vacuum.c                      |  2 +-
src/backend/executor/execExpr.c                    |  5 +--
src/backend/executor/execExprInterp.c              | 12 +++---
src/backend/executor/execGrouping.c                |  6 +--
src/backend/executor/execJunk.c                    |  4 +-
src/backend/executor/execParallel.c                |  6 +--
src/backend/executor/execPartition.c               | 22 +++++-----
src/backend/executor/execSRF.c                     |  4 +-
src/backend/executor/execTuples.c                  | 10 ++---
src/backend/executor/execUtils.c                   |  7 ++--
src/backend/executor/functions.c                   |  2 +-
src/backend/executor/nodeAgg.c                     | 24 ++++-------
src/backend/executor/nodeAppend.c                  |  9 ++--
src/backend/executor/nodeBitmapAnd.c               |  2 +-
src/backend/executor/nodeBitmapOr.c                |  2 +-
src/backend/executor/nodeGather.c                  |  3 +-
src/backend/executor/nodeGatherMerge.c             |  9 ++--
src/backend/executor/nodeIncrementalSort.c         |  4 +-
src/backend/executor/nodeIndexscan.c               | 44 ++++++++-----------
src/backend/executor/nodeMemoize.c                 |  6 +--
src/backend/executor/nodeMergejoin.c               |  2 +-
src/backend/executor/nodeModifyTable.c             |  2 +-
src/backend/executor/nodeSetOp.c                   |  3 +-
src/backend/executor/nodeSubplan.c                 | 14 +++----
src/backend/executor/nodeTidscan.c                 | 15 ++-----
src/backend/executor/nodeValuesscan.c              |  6 +--
src/backend/executor/spi.c                         |  4 +-
src/backend/jit/llvm/llvmjit_expr.c                |  3 +-
src/backend/lib/bipartite_match.c                  |  8 ++--
src/backend/lib/knapsack.c                         |  4 +-
src/backend/libpq/be-secure-common.c               |  2 +-
src/backend/libpq/be-secure-openssl.c              |  2 +-
src/backend/libpq/hba.c                            |  4 +-
src/backend/nodes/list.c                           |  3 +-
src/backend/nodes/queryjumblefuncs.c               | 10 ++---
src/backend/nodes/readfuncs.c                      |  2 +-
src/backend/optimizer/path/allpaths.c              |  8 ++--
src/backend/optimizer/path/equivclass.c            |  3 +-
src/backend/optimizer/path/pathkeys.c              |  4 +-
src/backend/optimizer/plan/analyzejoins.c          |  2 +-
src/backend/optimizer/plan/createplan.c            | 46 ++++++++++----------
src/backend/optimizer/plan/initsplan.c             |  2 +-
src/backend/optimizer/plan/planner.c               | 22 +++++-----
src/backend/optimizer/plan/setrefs.c               |  6 +--
src/backend/optimizer/prep/prepjointree.c          | 15 +++----
src/backend/optimizer/util/appendinfo.c            |  3 +-
src/backend/optimizer/util/clauses.c               |  4 +-
src/backend/optimizer/util/extendplan.c            |  3 +-
src/backend/optimizer/util/inherit.c               |  3 +-
src/backend/optimizer/util/plancat.c               |  6 +--
src/backend/optimizer/util/tlist.c                 | 11 +++--
src/backend/parser/analyze.c                       |  5 +--
src/backend/parser/parse_clause.c                  |  5 +--
src/backend/parser/parse_cte.c                     |  2 +-
src/backend/parser/parse_relation.c                |  6 +--
src/backend/partitioning/partbounds.c              | 24 +++++------
src/backend/partitioning/partdesc.c                | 10 ++---
src/backend/partitioning/partprune.c               | 11 +++--
src/backend/postmaster/autovacuum.c                |  2 +-
src/backend/postmaster/checkpointer.c              |  2 +-
src/backend/postmaster/datachecksum_state.c        |  2 +-
src/backend/postmaster/pmchild.c                   |  2 +-
src/backend/postmaster/postmaster.c                |  2 +-
src/backend/replication/pgoutput/pgoutput.c        |  2 +-
src/backend/rewrite/rewriteHandler.c               |  4 +-
src/backend/statistics/dependencies.c              |  5 ++-
src/backend/statistics/extended_stats.c            | 10 ++---
src/backend/statistics/mcv.c                       |  4 +-
src/backend/statistics/mvdistinct.c                |  3 +-
src/backend/storage/buffer/bufmgr.c                |  2 +-
src/backend/storage/ipc/shmem.c                    |  2 +-
src/backend/storage/lmgr/deadlock.c                | 18 ++++----
src/backend/storage/lmgr/lock.c                    | 22 ++++------
src/backend/storage/lmgr/lwlock.c                  |  2 +-
src/backend/storage/smgr/md.c                      |  4 +-
src/backend/tcop/fastpath.c                        |  2 +-
src/backend/tsearch/dict_thesaurus.c               |  6 +--
src/backend/tsearch/spell.c                        | 18 ++++----
src/backend/tsearch/ts_parse.c                     |  6 +--
src/backend/tsearch/wparser.c                      |  2 +-
src/backend/tsearch/wparser_def.c                  |  4 +-
src/backend/utils/activity/pgstat_xact.c           |  3 +-
src/backend/utils/adt/acl.c                        |  2 +-
src/backend/utils/adt/array_typanalyze.c           |  4 +-
src/backend/utils/adt/array_userfuncs.c            | 12 +++---
src/backend/utils/adt/arrayfuncs.c                 | 40 ++++++++----------
src/backend/utils/adt/arrayutils.c                 |  2 +-
src/backend/utils/adt/enum.c                       |  4 +-
src/backend/utils/adt/jsonb_util.c                 |  8 ++--
src/backend/utils/adt/jsonfuncs.c                  | 13 +++---
src/backend/utils/adt/levenshtein.c                |  2 +-
src/backend/utils/adt/like_support.c               |  4 +-
src/backend/utils/adt/lockfuncs.c                  |  6 +--
src/backend/utils/adt/multirangetypes.c            | 13 +++---
src/backend/utils/adt/name.c                       |  2 +-
src/backend/utils/adt/numeric.c                    | 10 ++---
src/backend/utils/adt/oracle_compat.c              |  8 ++--
src/backend/utils/adt/orderedsetaggs.c             | 20 ++++-----
src/backend/utils/adt/pg_ndistinct.c               |  2 +-
src/backend/utils/adt/rangetypes_typanalyze.c      |  4 +-
src/backend/utils/adt/regexp.c                     |  3 +-
src/backend/utils/adt/rowtypes.c                   | 32 +++++++-------
src/backend/utils/adt/ruleutils.c                  | 25 ++++++-----
src/backend/utils/adt/selfuncs.c                   |  4 +-
src/backend/utils/adt/tsquery_rewrite.c            |  2 +-
src/backend/utils/adt/tsrank.c                     |  2 +-
src/backend/utils/adt/tsvector.c                   |  6 +--
src/backend/utils/adt/tsvector_op.c                |  9 ++--
src/backend/utils/adt/xml.c                        |  4 +-
src/backend/utils/cache/catcache.c                 |  2 +-
src/backend/utils/cache/inval.c                    |  7 +---
src/backend/utils/cache/lsyscache.c                |  2 +-
src/backend/utils/cache/relcache.c                 | 19 ++++-----
src/backend/utils/cache/typcache.c                 | 11 ++---
src/backend/utils/misc/conffiles.c                 |  3 +-
src/backend/utils/misc/tzparser.c                  |  2 +-
src/backend/utils/sort/logtape.c                   |  8 ++--
src/backend/utils/sort/tuplesort.c                 |  8 ++--
src/backend/utils/sort/tuplesortvariants.c         | 14 +++----
src/backend/utils/sort/tuplestore.c                |  8 ++--
src/backend/utils/time/combocid.c                  |  3 +-
src/backend/utils/time/snapmgr.c                   |  4 +-
src/common/blkreftable.c                           | 14 +++----
src/common/rmtree.c                                |  3 +-
src/include/lib/simplehash.h                       |  2 +-
src/pl/plpgsql/src/pl_comp.c                       |  2 +-
src/pl/plpgsql/src/pl_gram.y                       |  2 +-
src/pl/plpython/plpy_cursorobject.c                |  4 +-
src/pl/plpython/plpy_exec.c                        |  6 +--
src/pl/plpython/plpy_procedure.c                   |  4 +-
src/pl/plpython/plpy_spi.c                         |  4 +-
src/test/modules/plsample/plsample.c               |  2 +-
src/test/modules/test_aio/test_aio.c               | 10 ++---
src/test/modules/test_binaryheap/test_binaryheap.c |  2 +-
src/test/modules/test_integerset/test_integerset.c |  2 +-
src/test/modules/test_radixtree/test_radixtree.c   |  2 +-
src/test/modules/test_rbtree/test_rbtree.c         |  8 ++--
src/test/modules/test_regex/test_regex.c           |  8 ++--
.../modules/test_resowner/test_resowner_basic.c    |  4 +-
.../modules/test_resowner/test_resowner_many.c     |  4 +-
src/test/modules/test_saslprep/test_saslprep.c     |  2 +-
src/test/modules/test_tidstore/test_tidstore.c     | 12 +++---
src/test/regress/regress.c                         | 14 +++----
234 files changed, 728 insertions(+), 892 deletions(-)

Reply via email to