Hi,
I'm testing loading a large CRL file into a X509_CRL structure then
free it. but after X509_CRL_free, there are still some mysterious
memory consumption.
pmap reports that total memory consumption is 105608KB right after the
CRL file was loaded, and 88920K after X509_CRL_free was called.
here is my test code:
// gcc -o a -g a.c
// ./a testcrl.pem
// the crl file size is about 30M bytes, and itsformat is PEM
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <time.h>
#include <sys/syslog.h>
#include <errno.h>
#include <sys/vfs.h>
#include <errno.h>
#define _GNU_SOURCE 1
#include <math.h>
#include <stdlib.h>
#include <unistd.h>
#include <openssl/objects.h>
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <openssl/bio.h>
#include <openssl/pem.h>
void test4(const char* filename) {
X509_CRL* crl = NULL;
BIO* in = NULL;
in = BIO_new_file(filename, "r");
if (!in) {
return;
}
crl = PEM_read_bio_X509_CRL(in, NULL, NULL, NULL);
if (!crl) {
BIO_reset(in);
crl = d2i_X509_CRL_bio(in, NULL);
}
BIO_free(in);
----> // pmap: total 105608K
if (crl) {
X509_CRL_free(crl);
----> // pmap: total 88920K
}
}
int main(int argc, char* argv[]) {
test4(argv[1]);
return 0;
}
I am wondering why not all of the memory are freed, and how can I free
those lost memory.
Thanks very much.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [email protected]