Hi,
I'm doing following code:
int main(int argc, char* argv[])
{
BYTE* pData = 0;
size_t nSize = 0;
FILE* fp = fopen("d:\\certcrl.crl", "rb");
if(fp)
{
fseek(fp, 0, SEEK_END) ;
nSize = ftell(fp);
fseek(fp, 0, SEEK_SET);
pData = new BYTE[nSize];
fread(pData, sizeof(BYTE), nSize, fp);
BIO* pBio = BIO_new(BIO_s_mem());
BIO_write(pBio, pData, nSize);
X509_CRL* pX509Crl = d2i_X509_CRL_bio(pBio, 0);
BIO_free(pBio);
delete[] pData;
fclose(fp);
if(pX509Crl)
X509_CRL_free(pX509Crl);
}
EVP_cleanup();
return 0;
}
And I'm getting a memory leak, with following function call stack:
CRYPTO_malloc() in .\crypto\mem.c
ERR_get_state() in .\crypto\err.c
ERR_clear_error() in .\crypto\err.c
ASN1_d2i_bio() in .\crypto\asn1\a_d2i_fp.c
d2iX509_CRL_bio() in .\crypto\x509\x_all.c
main()
mainCRTStartup()
Can any one tell me why we is ERR_clear_error have following body in which
the pointer ERR_STATE is never deleted:
void ERR_clear_error(void)
{
int i;
ERR_STATE *es;
es=ERR_get_state();
for (i=0; i<ERR_NUM_ERRORS; i++)
{
es->err_buffer[i]=0;
err_clear_data(es,i);
es->err_file[i]=NULL;
es->err_line[i]= -1;
}
es->top=es->bottom=0;
}
Or its BUG..
Thanks
Aslam
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]