OCSP_request_add0_id() inconsistent error return
[openssl.git] / crypto / ocsp / ocsp_cl.c
index d0ee0574d528899bd8deeddcb9055aed2c88acb0..12d5bef5743a2464de85bd1b00df5997dfe15d15 100644 (file)
@@ -35,8 +35,10 @@ OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid)
         return NULL;
     OCSP_CERTID_free(one->reqCert);
     one->reqCert = cid;
-    if (req && !sk_OCSP_ONEREQ_push(req->tbsRequest.requestList, one))
+    if (req && !sk_OCSP_ONEREQ_push(req->tbsRequest.requestList, one)) {
+        one->reqCert = NULL; /* do not free on error */
         goto err;
+    }
     return one;
  err:
     OCSP_ONEREQ_free(one);