ssl/ssl_ciph.c:461: error: MEMORY_LEAK
  memory dynamically allocated by call to `CRYPTO_malloc()` at line 456, column 16 is not reachable after line 461, column 13.
Showing all 44 steps of the trace


ssl/ssl_ciph.c:447:1: start of procedure do_load_builtin_compressions()
445.   }
446.   
447. > DEFINE_RUN_ONCE_STATIC(do_load_builtin_compressions)
448.   {
449.       SSL_COMP *comp = NULL;

ssl/ssl_ciph.c:449:5: 
447.   DEFINE_RUN_ONCE_STATIC(do_load_builtin_compressions)
448.   {
449. >     SSL_COMP *comp = NULL;
450.       COMP_METHOD *method = COMP_zlib();
451.   

ssl/ssl_ciph.c:450:5: 
448.   {
449.       SSL_COMP *comp = NULL;
450. >     COMP_METHOD *method = COMP_zlib();
451.   
452.       CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE);

crypto/comp/c_zlib.c:209:1: start of procedure COMP_zlib()
  207.   #endif
  208.   
  209. > COMP_METHOD *COMP_zlib(void)
  210.   {
  211.       COMP_METHOD *meth = &zlib_method_nozlib;

crypto/comp/c_zlib.c:211:5: 
  209.   COMP_METHOD *COMP_zlib(void)
  210.   {
  211. >     COMP_METHOD *meth = &zlib_method_nozlib;
  212.   
  213.   #ifdef ZLIB_SHARED

crypto/comp/c_zlib.c:259:5: 
  257.   #endif
  258.   
  259. >     return (meth);
  260.   }
  261.   

crypto/comp/c_zlib.c:260:1: return from a call to COMP_zlib
  258.   
  259.       return (meth);
  260. > }
  261.   
  262.   void comp_zlib_cleanup_int(void)

ssl/ssl_ciph.c:452:5: 
450.       COMP_METHOD *method = COMP_zlib();
451.   
452. >     CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE);
453.       ssl_comp_methods = sk_SSL_COMP_new(sk_comp_cmp);
454.   

crypto/mem_dbg.c:117:1: start of procedure CRYPTO_mem_ctrl()
  115.   #endif
  116.   
  117. > int CRYPTO_mem_ctrl(int mode)
  118.   {
  119.   #ifdef OPENSSL_NO_CRYPTO_MDEBUG

crypto/mem_dbg.c:120:5: 
  118.   {
  119.   #ifdef OPENSSL_NO_CRYPTO_MDEBUG
  120. >     return mode - mode;
  121.   #else
  122.       int ret = mh_mode;

crypto/mem_dbg.c:188:1: return from a call to CRYPTO_mem_ctrl
  186.       return (ret);
  187.   #endif
  188. > }
  189.   
  190.   #ifndef OPENSSL_NO_CRYPTO_MDEBUG

ssl/ssl_ciph.c:453:5: 
451.   
452.       CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE);
453. >     ssl_comp_methods = sk_SSL_COMP_new(sk_comp_cmp);
454.   
455.       if (COMP_get_type(method) != NID_undef && ssl_comp_methods != NULL) {

include/openssl/ssl.h:883:1: start of procedure sk_SSL_COMP_new()
  881.    */
  882.   DEFINE_STACK_OF_CONST(SSL_CIPHER)
  883. > DEFINE_STACK_OF(SSL_COMP)
  884.   
  885.   /* compatibility */

include/openssl/ssl.h:883:1: return from a call to sk_SSL_COMP_new
  881.    */
  882.   DEFINE_STACK_OF_CONST(SSL_CIPHER)
  883. > DEFINE_STACK_OF(SSL_COMP)
  884.   
  885.   /* compatibility */

ssl/ssl_ciph.c:455:9: 
453.       ssl_comp_methods = sk_SSL_COMP_new(sk_comp_cmp);
454.   
455. >     if (COMP_get_type(method) != NID_undef && ssl_comp_methods != NULL) {
456.           comp = OPENSSL_malloc(sizeof(*comp));
457.           if (comp != NULL) {

crypto/comp/comp_lib.c:36:1: start of procedure COMP_get_type()
  34.   }
  35.   
  36. > int COMP_get_type(const COMP_METHOD *meth)
  37.   {
  38.       return meth->type;

crypto/comp/comp_lib.c:38:5: 
  36.   int COMP_get_type(const COMP_METHOD *meth)
  37.   {
  38. >     return meth->type;
  39.   }
  40.   

crypto/comp/comp_lib.c:39:1: return from a call to COMP_get_type
  37.   {
  38.       return meth->type;
  39. > }
  40.   
  41.   const char *COMP_get_name(const COMP_METHOD *meth)

ssl/ssl_ciph.c:455:9: Taking true branch
453.       ssl_comp_methods = sk_SSL_COMP_new(sk_comp_cmp);
454.   
455.       if (COMP_get_type(method) != NID_undef && ssl_comp_methods != NULL) {
               ^
456.           comp = OPENSSL_malloc(sizeof(*comp));
457.           if (comp != NULL) {

ssl/ssl_ciph.c:455:47: Taking true branch
453.       ssl_comp_methods = sk_SSL_COMP_new(sk_comp_cmp);
454.   
455.       if (COMP_get_type(method) != NID_undef && ssl_comp_methods != NULL) {
                                                     ^
456.           comp = OPENSSL_malloc(sizeof(*comp));
457.           if (comp != NULL) {

ssl/ssl_ciph.c:456:9: 
454.   
455.       if (COMP_get_type(method) != NID_undef && ssl_comp_methods != NULL) {
456. >         comp = OPENSSL_malloc(sizeof(*comp));
457.           if (comp != NULL) {
458.               comp->method = method;

crypto/mem.c:158:1: start of procedure CRYPTO_malloc()
  156.   #endif
  157.   
  158. > void *CRYPTO_malloc(size_t num, const char *file, int line)
  159.   {
  160.       void *ret = NULL;

crypto/mem.c:160:5: 
  158.   void *CRYPTO_malloc(size_t num, const char *file, int line)
  159.   {
  160. >     void *ret = NULL;
  161.   
  162.       if (malloc_impl != NULL && malloc_impl != CRYPTO_malloc)

crypto/mem.c:162:9: Taking false branch
  160.       void *ret = NULL;
  161.   
  162.       if (malloc_impl != NULL && malloc_impl != CRYPTO_malloc)
                 ^
  163.           return malloc_impl(num, file, line);
  164.   

crypto/mem.c:165:9: Taking false branch
  163.           return malloc_impl(num, file, line);
  164.   
  165.       if (num == 0)
                 ^
  166.           return NULL;
  167.   

crypto/mem.c:169:5: 
  167.   
  168.       FAILTEST();
  169. >     allow_customize = 0;
  170.   #ifndef OPENSSL_NO_CRYPTO_MDEBUG
  171.       if (call_malloc_debug) {

crypto/mem.c:179:5: 
  177.       }
  178.   #else
  179. >     osslargused(file); osslargused(line);
  180.       ret = malloc(num);
  181.   #endif

crypto/mem.c:179:24: 
  177.       }
  178.   #else
  179. >     osslargused(file); osslargused(line);
  180.       ret = malloc(num);
  181.   #endif

crypto/mem.c:180:5: 
  178.   #else
  179.       osslargused(file); osslargused(line);
  180. >     ret = malloc(num);
  181.   #endif
  182.   

crypto/mem.c:183:5: 
  181.   #endif
  182.   
  183. >     return ret;
  184.   }
  185.   

crypto/mem.c:184:1: return from a call to CRYPTO_malloc
  182.   
  183.       return ret;
  184. > }
  185.   
  186.   void *CRYPTO_zalloc(size_t num, const char *file, int line)

ssl/ssl_ciph.c:457:13: Taking true branch
455.       if (COMP_get_type(method) != NID_undef && ssl_comp_methods != NULL) {
456.           comp = OPENSSL_malloc(sizeof(*comp));
457.           if (comp != NULL) {
                   ^
458.               comp->method = method;
459.               comp->id = SSL_COMP_ZLIB_IDX;

ssl/ssl_ciph.c:458:13: 
456.           comp = OPENSSL_malloc(sizeof(*comp));
457.           if (comp != NULL) {
458. >             comp->method = method;
459.               comp->id = SSL_COMP_ZLIB_IDX;
460.               comp->name = COMP_get_name(method);

ssl/ssl_ciph.c:459:13: 
457.           if (comp != NULL) {
458.               comp->method = method;
459. >             comp->id = SSL_COMP_ZLIB_IDX;
460.               comp->name = COMP_get_name(method);
461.               sk_SSL_COMP_push(ssl_comp_methods, comp);

ssl/ssl_ciph.c:460:13: 
458.               comp->method = method;
459.               comp->id = SSL_COMP_ZLIB_IDX;
460. >             comp->name = COMP_get_name(method);
461.               sk_SSL_COMP_push(ssl_comp_methods, comp);
462.               sk_SSL_COMP_sort(ssl_comp_methods);

crypto/comp/comp_lib.c:41:1: start of procedure COMP_get_name()
  39.   }
  40.   
  41. > const char *COMP_get_name(const COMP_METHOD *meth)
  42.   {
  43.       return meth->name;

crypto/comp/comp_lib.c:43:5: 
  41.   const char *COMP_get_name(const COMP_METHOD *meth)
  42.   {
  43. >     return meth->name;
  44.   }
  45.   

crypto/comp/comp_lib.c:44:1: return from a call to COMP_get_name
  42.   {
  43.       return meth->name;
  44. > }
  45.   
  46.   void COMP_CTX_free(COMP_CTX *ctx)

ssl/ssl_ciph.c:461:13: 
459.               comp->id = SSL_COMP_ZLIB_IDX;
460.               comp->name = COMP_get_name(method);
461. >             sk_SSL_COMP_push(ssl_comp_methods, comp);
462.               sk_SSL_COMP_sort(ssl_comp_methods);
463.           }

include/openssl/ssl.h:883:1: start of procedure sk_SSL_COMP_push()
  881.    */
  882.   DEFINE_STACK_OF_CONST(SSL_CIPHER)
  883. > DEFINE_STACK_OF(SSL_COMP)
  884.   
  885.   /* compatibility */

crypto/stack/stack.c:219:1: start of procedure OPENSSL_sk_push()
    217.   }
    218.   
    219. > int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data)
    220.   {
    221.       return (OPENSSL_sk_insert(st, data, st->num));

crypto/stack/stack.c:221:5: Skipping OPENSSL_sk_insert(): empty list of specs
    219.   int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data)
    220.   {
    221.       return (OPENSSL_sk_insert(st, data, st->num));
               ^
    222.   }
    223.   

crypto/stack/stack.c:222:1: return from a call to OPENSSL_sk_push
    220.   {
    221.       return (OPENSSL_sk_insert(st, data, st->num));
    222. > }
    223.   
    224.   int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data)

include/openssl/ssl.h:883:1: return from a call to sk_SSL_COMP_push
  881.    */
  882.   DEFINE_STACK_OF_CONST(SSL_CIPHER)
  883. > DEFINE_STACK_OF(SSL_COMP)
  884.   
  885.   /* compatibility */
