the openssl library version is 1.0.1c, the operation system is debian linux.

On Fri, Oct 26, 2012 at 8:05 PM, Zhuang Yuyao <mli...@gmail.com> wrote:
> 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                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to