Hi, 

I have found another leaking in the call: 

int PKCS12_parse (PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert,
             STACK_OF(X509) **ca)
when setting X509**cert = NULL, STACK_OF(X509) **ca = NULL, which causes
the x509 defined in the call:

static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,
                      EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca,
                      ASN1_OCTET_STRING **keyid,
             char *keymatch)
 
is not cleaned. Here is the code:


                if (lkey) {
                        *keymatch |= MATCH_CERT;
                        if (cert) *cert = x509;
                } else {
                        if(ca) sk_X509_push (*ca, x509);
                        else X509_free(x509);
                }


Heyun Zheng

[EMAIL PROTECTED]


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to