Hi, using openssl-0.9.4 on WIN32(NT4,VC6).

I found public-key structure doubly freed in function internal_verify
(crypto/x509/x509_vfy.c) in some case.

-----
        if ((pkey=X509_get_pubkey(xi)) == NULL)         <- allocates pubkey
                {
                        : (snip)
                }
        if (X509_verify(xs,pkey) <= 0)
                {
                EVP_PKEY_free(pkey);                    <- free pubkey (*)
                        : (snip)
                }
        EVP_PKEY_free(pkey);            <- in some case, doubly freed pubkey
        pkey=NULL;
-----
Before found this, I had a problem that program crashed in EVP_PKEY_free
routine in some cert combination.

So modified (*) line as :
                EVP_PKEY_free(pkey);
                pkey = NULL;
It seems problem is solved. (Is this correct fix?)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Takaaki Ishii
[EMAIL PROTECTED]            from Fukuoka.Japan
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to