CVSROOT:        /cvs
Module name:    src
Changes by:     t...@cvs.openbsd.org    2020/10/09 11:19:35

Modified files:
        lib/libcrypto/ocsp: ocsp_cl.c 

Log message:
Fix leak or double free with OCSP_request_add0_id()

On success, OCSP_request_add0_id() transfers ownership of cid to
either 'one' or 'req' depending on whether the latter is NULL or
not.  On failure, the caller can't tell whether OCSP_ONEREQ_new()
failed (in which case cid needs to be freed) or whether it was a
failure to allocate memory in sk_insert() (in which case cid must
not be freed).

The caller is thus faced with the choice of leaving either a leak
or a potential double free.  Fix this by transferring ownership
only at the end of the function.

Found while reviewing an upcoming diff by beck.

ok jsing

Reply via email to