]> git.ipfire.org Git - thirdparty/postgresql.git/commit
pgcrypto: avoid recursive ResourceOwnerForget(). master github/master
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 22 Jun 2026 16:59:16 +0000 (12:59 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 22 Jun 2026 16:59:16 +0000 (12:59 -0400)
commit80bb0ebcc11fb9cb5904d490640408b3d7003a17
tree8fe7552db6c705231abdc53655b31f3cf3034761
parent9a60f295bcb186a729d04e76377b7f122b2a1dd9
pgcrypto: avoid recursive ResourceOwnerForget().

Raising an error within a function using an OSSLCipher object led
to a complaint from ResourceOwnerForget and then a double-free crash,
because ResOwnerReleaseOSSLCipher forgot to unhook the OSSLCipher
object from its owner.  (The sibling logic for OSSLDigest objects got
this right, as did every other ReleaseResource function AFAICS.)

Oversight in cd694f60d.

Bug: #19527
Reported-by: Yuelin Wang <3020001251@tju.edu.cn>
Author: Yuelin Wang <3020001251@tju.edu.cn>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/19527-6e7686960c6dce78@postgresql.org
Backpatch-through: 17
contrib/pgcrypto/openssl.c