]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Avoid low-probability crash on out-of-memory.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 5 Dec 2024 17:54:41 +0000 (12:54 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 5 Dec 2024 17:54:41 +0000 (12:54 -0500)
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

src/backend/tcop/postgres.c

index bd8ad11421a7006d077c8b78985a816b29a8ade8..5d699f7ff7c701e9f4f178121472a78453e2f30c 100644 (file)
@@ -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;