]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Guard against null plan pointer in CachedPlanIsSimplyValid().
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 20 Jul 2023 18:23:46 +0000 (14:23 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 20 Jul 2023 18:23:46 +0000 (14:23 -0400)
commitc0f53139611cf6b24175bea27bfbddb0ea5b7378
treeb2113ae9d1e36e890db31d5e1d12b7a1e97e2f0a
parent7825a1b01e400434835253b4ff38dd96d823d454
Guard against null plan pointer in CachedPlanIsSimplyValid().

If both the passed-in plan pointer and plansource->gplan are
NULL, CachedPlanIsSimplyValid would think that the plan pointer
is possibly-valid and try to dereference it.  For the one extant
call site in plpgsql, this situation doesn't normally happen
which is why we've not noticed. However, it appears to be possible
if the previous use of the cached plan failed, as per report from
Justin Pryzby.  Add an extra check to prevent crashing.
Back-patch to v13 where this code was added.

Discussion: https://postgr.es/m/ZLlV+STFz1l/WhAQ@telsasoft.com
src/backend/utils/cache/plancache.c