diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2024-12-05 12:54:41 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2024-12-05 12:54:41 -0500 |
commit | d24eb0e91f3f7fc54ed4e56d93b26e2f8d52c1ce (patch) | |
tree | b12e5b5755683237dce2d2bd2228de46dbbf35a1 /src/backend/tcop/postgres.c | |
parent | 7d0b91a28421a7928fb45e10b31e7f1f81842ba7 (diff) | |
download | postgresql-d24eb0e91f3f7fc54ed4e56d93b26e2f8d52c1ce.tar.gz postgresql-d24eb0e91f3f7fc54ed4e56d93b26e2f8d52c1ce.zip |
Avoid low-probability crash on out-of-memory.
check_restrict_nonsystem_relation_kind() correctly uses guc_malloc()
in v16 and later. But in older branches it must use malloc()
directly, and it forgot to check for failure return.
Faulty backpatching of 66e94448a.
Karina Litskevich
Discussion: https://postgr.es/m/CACiT8iZ=atkguKVbpN4HmJFMb4+T9yEowF5JuPZG8W+kkZ9L6w@mail.gmail.com
Diffstat (limited to 'src/backend/tcop/postgres.c')
-rw-r--r-- | src/backend/tcop/postgres.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index bd8ad11421a..5d699f7ff7c 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -3649,6 +3649,11 @@ check_restrict_nonsystem_relation_kind(char **newval, void **extra, GucSource so /* Save the flags in *extra, for use by the assign function */ *extra = malloc(sizeof(int)); + if (*extra == NULL) + ereport(ERROR, + (errcode(ERRCODE_OUT_OF_MEMORY), + errmsg("out of memory"))); + *((int *) *extra) = flags; return true; |