memory still reachable post calling SSL_CTX_free

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I need one clarification on routine SSL_CTX_free(). I see the memory is not freed even after calling this SSL_CTX_free().

 

I have a simple test program, which just does SSL_CTX_new() and  SSL_CTX_free().

 

#include<stdio.h>

#include <openssl/ssl.h>

 

int main()

{

    const SSL_METHOD *method;

    SSL_CTX *ctx = NULL;

    OPENSSL_init_ssl(0, NULL);

    method = TLS_method();

    ctx = SSL_CTX_new(method);

    if ( ctx == NULL ) {

        return(-1);

    }

    SSL_CTX_free(ctx);

    ctx=NULL;

    sleep(300);

}

 

If the program is terminated after it enters the sleep, I am seeing memory is still reachable in valgrind.

 

Here is output from valgrind,

 

==443000== 10,224 bytes in 426 blocks are still reachable in loss record 593 of 594

==443000==    at 0x4C34F0B: malloc (vg_replace_malloc.c:307)

==443000==    by 0x525D775: OPENSSL_LH_insert (in /usr/lib64/libcrypto.so.1.1.1g)

==443000==    by 0x522DDB2: ??? (in /usr/lib64/libcrypto.so.1.1.1g)

==443000==    by 0x522E1CF: ERR_load_strings_const (in /usr/lib64/libcrypto.so.1.1.1g)

==443000==    by 0x4E79083: ERR_load_SSL_strings (in /usr/lib64/libssl.so.1.1.1g)

==443000==    by 0x4E790BC: ??? (in /usr/lib64/libssl.so.1.1.1g)

==443000==    by 0x5DABCD6: __pthread_once_slow (in /usr/lib64/libpthread-2.28.so)

==443000==    by 0x52C4ADC: CRYPTO_THREAD_run_once (in /usr/lib64/libcrypto.so.1.1.1g)

==443000==    by 0x4E794FA: OPENSSL_init_ssl (in /usr/lib64/libssl.so.1.1.1g)

==443000==    by 0x4E7D371: SSL_CTX_new (in /usr/lib64/libssl.so.1.1.1g)

==443000==    by 0x400749: main (in /home/hari/a.out)

 

SSL_CTX_free is already called before sleep(), but memory is still hanging around.

Is there something I am missing here? Do I need to follow some other steps ?

This memory leak is impacting our long term running processes, which allocate and free context.

Any pointers will be very helpful.

 

Thanks,

Hari.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux