Start cleaning up X509_STORE_get1_issuer()
authortb <tb@openbsd.org>
Sat, 6 Nov 2021 12:31:40 +0000 (12:31 +0000)
committertb <tb@openbsd.org>
Sat, 6 Nov 2021 12:31:40 +0000 (12:31 +0000)
commit8c897f438e5ee01e44a0b20891af30df4c0b927e
tree8caa5c44043c874c1de1accb94a416f07a0597c5
parent62d9f894cecff1fa8b803c06febd573559fe2e59
Start cleaning up X509_STORE_get1_issuer()

Get rid of the last X509_OBJECT_free_contents() call by moving the object
from the stack to the heap. I deliberately kept the obj variable to keep
obj and pobj separate.  Rename the out parameter from issuer to out_issuer
to ensure that we only assign it when we have acquired a reference that we
can return. Add a new X509 *issuer. In the first part of the function,
acquire an extra reference before check_issuer/check_time.

In the second part of the function, acquire a reference inside the lock to
avoid a race.  Deal with ret only in one place.

ok jsing
lib/libcrypto/x509/x509_lu.c