crypto/conf/conf_mall.c:77: error: MEMORY_LEAK
  memory dynamically allocated by call to `ASN1_add_oid_module()` at line 76, column 5 is not reachable after line 77, column 5.
Showing all 137 steps of the trace


crypto/conf/conf_mall.c:73:1: start of procedure OPENSSL_load_builtin_modules()
71.   /* Load all OpenSSL builtin modules */
72.   
73. > void OPENSSL_load_builtin_modules(void)
74.   {
75.       /* Add builtin modules here */

crypto/conf/conf_mall.c:76:5: 
74.   {
75.       /* Add builtin modules here */
76. >     ASN1_add_oid_module();
77.       ASN1_add_stable_module();
78.   #ifndef OPENSSL_NO_ENGINE

crypto/asn1/asn_moid.c:100:1: start of procedure ASN1_add_oid_module()
  98.   }
  99.   
  100. > void ASN1_add_oid_module(void)
  101.   {
  102.       CONF_module_add("oid_section", oid_module_init, oid_module_finish);

crypto/asn1/asn_moid.c:102:5: 
  100.   void ASN1_add_oid_module(void)
  101.   {
  102. >     CONF_module_add("oid_section", oid_module_init, oid_module_finish);
  103.   }
  104.   

crypto/conf/conf_mod.c:457:1: start of procedure CONF_module_add()
    455.   /* Add a static module to OpenSSL */
    456.   
    457. > int CONF_module_add(const char *name, conf_init_func *ifunc,
    458.                       conf_finish_func *ffunc)
    459.   {

crypto/conf/conf_mod.c:460:9: 
    458.                       conf_finish_func *ffunc)
    459.   {
    460. >     if (module_add(NULL, name, ifunc, ffunc))
    461.           return 1;
    462.       else

crypto/conf/conf_mod.c:276:1: start of procedure module_add()
      274.   
      275.   /* add module to list */
      276. > static CONF_MODULE *module_add(DSO *dso, const char *name,
      277.                                  conf_init_func *ifunc, conf_finish_func *ffunc)
      278.   {

crypto/conf/conf_mod.c:279:5: 
      277.                                  conf_init_func *ifunc, conf_finish_func *ffunc)
      278.   {
      279. >     CONF_MODULE *tmod = NULL;
      280.       if (supported_modules == NULL)
      281.           supported_modules = sk_CONF_MODULE_new_null();

crypto/conf/conf_mod.c:280:9: Taking false branch
      278.   {
      279.       CONF_MODULE *tmod = NULL;
      280.       if (supported_modules == NULL)
                     ^
      281.           supported_modules = sk_CONF_MODULE_new_null();
      282.       if (supported_modules == NULL)

crypto/conf/conf_mod.c:282:9: Taking false branch
      280.       if (supported_modules == NULL)
      281.           supported_modules = sk_CONF_MODULE_new_null();
      282.       if (supported_modules == NULL)
                     ^
      283.           return NULL;
      284.       tmod = OPENSSL_zalloc(sizeof(*tmod));

crypto/conf/conf_mod.c:284:5: 
      282.       if (supported_modules == NULL)
      283.           return NULL;
      284. >     tmod = OPENSSL_zalloc(sizeof(*tmod));
      285.       if (tmod == NULL)
      286.           return NULL;

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

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

crypto/mem.c:120:1: start of procedure CRYPTO_malloc()
          118.   }
          119.   
          120. > void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122.       void *ret = NULL;

crypto/mem.c:122:5: 
          120.   void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122. >     void *ret = NULL;
          123.   
          124.       if (num <= 0)

crypto/mem.c:124:9: Taking false branch
          122.       void *ret = NULL;
          123.   
          124.       if (num <= 0)
                         ^
          125.           return NULL;
          126.   

crypto/mem.c:127:5: 
          125.           return NULL;
          126.   
          127. >     allow_customize = 0;
          128.   #ifdef CRYPTO_MDEBUG
          129.       if (call_malloc_debug) {

crypto/mem.c:137:5: 
          135.       }
          136.   #else
          137. >     (void)file;
          138.       (void)line;
          139.       ret = malloc(num);

crypto/mem.c:138:5: 
          136.   #else
          137.       (void)file;
          138. >     (void)line;
          139.       ret = malloc(num);
          140.   #endif

crypto/mem.c:139:5: 
          137.       (void)file;
          138.       (void)line;
          139. >     ret = malloc(num);
          140.   #endif
          141.   

crypto/mem.c:154:5: 
          152.   #endif
          153.   
          154. >     return ret;
          155.   }
          156.   

crypto/mem.c:155:1: return from a call to CRYPTO_malloc
          153.   
          154.       return ret;
          155. > }
          156.   
          157.   void *CRYPTO_zalloc(size_t num, const char *file, int line)

crypto/mem.c:161:9: Taking true branch
        159.       void *ret = CRYPTO_malloc(num, file, line);
        160.   
        161.       if (ret != NULL)
                       ^
        162.           memset(ret, 0, num);
        163.       return ret;

crypto/mem.c:162:9: 
        160.   
        161.       if (ret != NULL)
        162. >         memset(ret, 0, num);
        163.       return ret;
        164.   }

crypto/mem.c:163:5: 
        161.       if (ret != NULL)
        162.           memset(ret, 0, num);
        163. >     return ret;
        164.   }
        165.   

crypto/mem.c:164:1: return from a call to CRYPTO_zalloc
        162.           memset(ret, 0, num);
        163.       return ret;
        164. > }
        165.   
        166.   void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)

crypto/conf/conf_mod.c:285:9: Taking false branch
      283.           return NULL;
      284.       tmod = OPENSSL_zalloc(sizeof(*tmod));
      285.       if (tmod == NULL)
                     ^
      286.           return NULL;
      287.   

crypto/conf/conf_mod.c:288:5: 
      286.           return NULL;
      287.   
      288. >     tmod->dso = dso;
      289.       tmod->name = OPENSSL_strdup(name);
      290.       tmod->init = ifunc;

crypto/conf/conf_mod.c:289:5: 
      287.   
      288.       tmod->dso = dso;
      289. >     tmod->name = OPENSSL_strdup(name);
      290.       tmod->init = ifunc;
      291.       tmod->finish = ffunc;

crypto/o_str.c:121:1: start of procedure CRYPTO_strdup()
        119.   }
        120.   
        121. > char *CRYPTO_strdup(const char *str, const char* file, int line)
        122.   {
        123.       char *ret;

crypto/o_str.c:125:9: Taking false branch
        123.       char *ret;
        124.   
        125.       if (str == NULL)
                       ^
        126.           return NULL;
        127.       ret = CRYPTO_malloc(strlen(str) + 1, file, line);

crypto/o_str.c:127:5: 
        125.       if (str == NULL)
        126.           return NULL;
        127. >     ret = CRYPTO_malloc(strlen(str) + 1, file, line);
        128.       if (ret != NULL)
        129.           strcpy(ret, str);

crypto/mem.c:120:1: start of procedure CRYPTO_malloc()
          118.   }
          119.   
          120. > void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122.       void *ret = NULL;

crypto/mem.c:122:5: 
          120.   void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122. >     void *ret = NULL;
          123.   
          124.       if (num <= 0)

crypto/mem.c:124:9: Taking false branch
          122.       void *ret = NULL;
          123.   
          124.       if (num <= 0)
                         ^
          125.           return NULL;
          126.   

crypto/mem.c:127:5: 
          125.           return NULL;
          126.   
          127. >     allow_customize = 0;
          128.   #ifdef CRYPTO_MDEBUG
          129.       if (call_malloc_debug) {

crypto/mem.c:137:5: 
          135.       }
          136.   #else
          137. >     (void)file;
          138.       (void)line;
          139.       ret = malloc(num);

crypto/mem.c:138:5: 
          136.   #else
          137.       (void)file;
          138. >     (void)line;
          139.       ret = malloc(num);
          140.   #endif

crypto/mem.c:139:5: 
          137.       (void)file;
          138.       (void)line;
          139. >     ret = malloc(num);
          140.   #endif
          141.   

crypto/mem.c:154:5: 
          152.   #endif
          153.   
          154. >     return ret;
          155.   }
          156.   

crypto/mem.c:155:1: return from a call to CRYPTO_malloc
          153.   
          154.       return ret;
          155. > }
          156.   
          157.   void *CRYPTO_zalloc(size_t num, const char *file, int line)

crypto/o_str.c:128:9: Taking true branch
        126.           return NULL;
        127.       ret = CRYPTO_malloc(strlen(str) + 1, file, line);
        128.       if (ret != NULL)
                       ^
        129.           strcpy(ret, str);
        130.       return ret;

crypto/o_str.c:129:9: 
        127.       ret = CRYPTO_malloc(strlen(str) + 1, file, line);
        128.       if (ret != NULL)
        129. >         strcpy(ret, str);
        130.       return ret;
        131.   }

crypto/o_str.c:130:5: 
        128.       if (ret != NULL)
        129.           strcpy(ret, str);
        130. >     return ret;
        131.   }
        132.   

crypto/o_str.c:131:1: return from a call to CRYPTO_strdup
        129.           strcpy(ret, str);
        130.       return ret;
        131. > }
        132.   
        133.   char *CRYPTO_strndup(const char *str, size_t s, const char* file, int line)

crypto/conf/conf_mod.c:290:5: 
      288.       tmod->dso = dso;
      289.       tmod->name = OPENSSL_strdup(name);
      290. >     tmod->init = ifunc;
      291.       tmod->finish = ffunc;
      292.   

crypto/conf/conf_mod.c:291:5: 
      289.       tmod->name = OPENSSL_strdup(name);
      290.       tmod->init = ifunc;
      291. >     tmod->finish = ffunc;
      292.   
      293.       if (!sk_CONF_MODULE_push(supported_modules, tmod)) {

crypto/conf/conf_mod.c:293:10: 
      291.       tmod->finish = ffunc;
      292.   
      293. >     if (!sk_CONF_MODULE_push(supported_modules, tmod)) {
      294.           OPENSSL_free(tmod);
      295.           return NULL;

include/openssl/conf.h:105:1: start of procedure sk_CONF_MODULE_push()
        103.   typedef struct conf_module_st CONF_MODULE;
        104.   
        105. > DEFINE_STACK_OF(CONF_MODULE)
        106.   DEFINE_STACK_OF(CONF_IMODULE)
        107.   

crypto/stack/stack.c:259:1: start of procedure sk_push()
          257.   }
          258.   
          259. > int sk_push(_STACK *st, void *data)
          260.   {
          261.       return (sk_insert(st, data, st->num));

crypto/stack/stack.c:261:5: 
          259.   int sk_push(_STACK *st, void *data)
          260.   {
          261. >     return (sk_insert(st, data, st->num));
          262.   }
          263.   

crypto/stack/stack.c:167:1: start of procedure sk_insert()
            165.   }
            166.   
            167. > int sk_insert(_STACK *st, void *data, int loc)
            168.   {
            169.       char **s;

crypto/stack/stack.c:171:9: Taking false branch
            169.       char **s;
            170.   
            171.       if (st == NULL)
                           ^
            172.           return 0;
            173.       if (st->num_alloc <= st->num + 1) {

crypto/stack/stack.c:173:9: Taking false branch
            171.       if (st == NULL)
            172.           return 0;
            173.       if (st->num_alloc <= st->num + 1) {
                           ^
            174.           s = OPENSSL_realloc((char *)st->data,
            175.                               (unsigned int)sizeof(char *) * st->num_alloc * 2);

crypto/stack/stack.c:181:10: Taking true branch
            179.           st->num_alloc *= 2;
            180.       }
            181.       if ((loc >= (int)st->num) || (loc < 0))
                            ^
            182.           st->data[st->num] = data;
            183.       else {

crypto/stack/stack.c:182:9: 
            180.       }
            181.       if ((loc >= (int)st->num) || (loc < 0))
            182. >         st->data[st->num] = data;
            183.       else {
            184.           memmove(&(st->data[loc + 1]),

crypto/stack/stack.c:188:5: 
            186.           st->data[loc] = data;
            187.       }
            188. >     st->num++;
            189.       st->sorted = 0;
            190.       return (st->num);

crypto/stack/stack.c:189:5: 
            187.       }
            188.       st->num++;
            189. >     st->sorted = 0;
            190.       return (st->num);
            191.   }

crypto/stack/stack.c:190:5: 
            188.       st->num++;
            189.       st->sorted = 0;
            190. >     return (st->num);
            191.   }
            192.   

crypto/stack/stack.c:191:1: return from a call to sk_insert
            189.       st->sorted = 0;
            190.       return (st->num);
            191. > }
            192.   
            193.   void *sk_delete_ptr(_STACK *st, void *p)

crypto/stack/stack.c:262:1: return from a call to sk_push
          260.   {
          261.       return (sk_insert(st, data, st->num));
          262. > }
          263.   
          264.   int sk_unshift(_STACK *st, void *data)

include/openssl/conf.h:105:1: return from a call to sk_CONF_MODULE_push
        103.   typedef struct conf_module_st CONF_MODULE;
        104.   
        105. > DEFINE_STACK_OF(CONF_MODULE)
        106.   DEFINE_STACK_OF(CONF_IMODULE)
        107.   

crypto/conf/conf_mod.c:293:10: Taking false branch
      291.       tmod->finish = ffunc;
      292.   
      293.       if (!sk_CONF_MODULE_push(supported_modules, tmod)) {
                      ^
      294.           OPENSSL_free(tmod);
      295.           return NULL;

crypto/conf/conf_mod.c:298:5: 
      296.       }
      297.   
      298. >     return tmod;
      299.   }
      300.   

crypto/conf/conf_mod.c:299:1: return from a call to module_add
      297.   
      298.       return tmod;
      299. > }
      300.   
      301.   /*

crypto/conf/conf_mod.c:460:9: Taking true branch
    458.                       conf_finish_func *ffunc)
    459.   {
    460.       if (module_add(NULL, name, ifunc, ffunc))
                   ^
    461.           return 1;
    462.       else

crypto/conf/conf_mod.c:461:9: 
    459.   {
    460.       if (module_add(NULL, name, ifunc, ffunc))
    461. >         return 1;
    462.       else
    463.           return 0;

crypto/conf/conf_mod.c:464:1: return from a call to CONF_module_add
    462.       else
    463.           return 0;
    464. > }
    465.   
    466.   void CONF_modules_free(void)

crypto/asn1/asn_moid.c:103:1: return from a call to ASN1_add_oid_module
  101.   {
  102.       CONF_module_add("oid_section", oid_module_init, oid_module_finish);
  103. > }
  104.   
  105.   /*-

crypto/conf/conf_mall.c:77:5: 
75.       /* Add builtin modules here */
76.       ASN1_add_oid_module();
77. >     ASN1_add_stable_module();
78.   #ifndef OPENSSL_NO_ENGINE
79.       ENGINE_add_conf_module();

crypto/asn1/asn_mstbl.c:94:1: start of procedure ASN1_add_stable_module()
  92.   }
  93.   
  94. > void ASN1_add_stable_module(void)
  95.   {
  96.       CONF_module_add("stbl_section", stbl_module_init, stbl_module_finish);

crypto/asn1/asn_mstbl.c:96:5: 
  94.   void ASN1_add_stable_module(void)
  95.   {
  96. >     CONF_module_add("stbl_section", stbl_module_init, stbl_module_finish);
  97.   }
  98.   

crypto/conf/conf_mod.c:457:1: start of procedure CONF_module_add()
    455.   /* Add a static module to OpenSSL */
    456.   
    457. > int CONF_module_add(const char *name, conf_init_func *ifunc,
    458.                       conf_finish_func *ffunc)
    459.   {

crypto/conf/conf_mod.c:460:9: 
    458.                       conf_finish_func *ffunc)
    459.   {
    460. >     if (module_add(NULL, name, ifunc, ffunc))
    461.           return 1;
    462.       else

crypto/conf/conf_mod.c:276:1: start of procedure module_add()
      274.   
      275.   /* add module to list */
      276. > static CONF_MODULE *module_add(DSO *dso, const char *name,
      277.                                  conf_init_func *ifunc, conf_finish_func *ffunc)
      278.   {

crypto/conf/conf_mod.c:279:5: 
      277.                                  conf_init_func *ifunc, conf_finish_func *ffunc)
      278.   {
      279. >     CONF_MODULE *tmod = NULL;
      280.       if (supported_modules == NULL)
      281.           supported_modules = sk_CONF_MODULE_new_null();

crypto/conf/conf_mod.c:280:9: Taking false branch
      278.   {
      279.       CONF_MODULE *tmod = NULL;
      280.       if (supported_modules == NULL)
                     ^
      281.           supported_modules = sk_CONF_MODULE_new_null();
      282.       if (supported_modules == NULL)

crypto/conf/conf_mod.c:282:9: Taking false branch
      280.       if (supported_modules == NULL)
      281.           supported_modules = sk_CONF_MODULE_new_null();
      282.       if (supported_modules == NULL)
                     ^
      283.           return NULL;
      284.       tmod = OPENSSL_zalloc(sizeof(*tmod));

crypto/conf/conf_mod.c:284:5: 
      282.       if (supported_modules == NULL)
      283.           return NULL;
      284. >     tmod = OPENSSL_zalloc(sizeof(*tmod));
      285.       if (tmod == NULL)
      286.           return NULL;

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

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

crypto/mem.c:120:1: start of procedure CRYPTO_malloc()
          118.   }
          119.   
          120. > void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122.       void *ret = NULL;

crypto/mem.c:122:5: 
          120.   void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122. >     void *ret = NULL;
          123.   
          124.       if (num <= 0)

crypto/mem.c:124:9: Taking false branch
          122.       void *ret = NULL;
          123.   
          124.       if (num <= 0)
                         ^
          125.           return NULL;
          126.   

crypto/mem.c:127:5: 
          125.           return NULL;
          126.   
          127. >     allow_customize = 0;
          128.   #ifdef CRYPTO_MDEBUG
          129.       if (call_malloc_debug) {

crypto/mem.c:137:5: 
          135.       }
          136.   #else
          137. >     (void)file;
          138.       (void)line;
          139.       ret = malloc(num);

crypto/mem.c:138:5: 
          136.   #else
          137.       (void)file;
          138. >     (void)line;
          139.       ret = malloc(num);
          140.   #endif

crypto/mem.c:139:5: 
          137.       (void)file;
          138.       (void)line;
          139. >     ret = malloc(num);
          140.   #endif
          141.   

crypto/mem.c:154:5: 
          152.   #endif
          153.   
          154. >     return ret;
          155.   }
          156.   

crypto/mem.c:155:1: return from a call to CRYPTO_malloc
          153.   
          154.       return ret;
          155. > }
          156.   
          157.   void *CRYPTO_zalloc(size_t num, const char *file, int line)

crypto/mem.c:161:9: Taking true branch
        159.       void *ret = CRYPTO_malloc(num, file, line);
        160.   
        161.       if (ret != NULL)
                       ^
        162.           memset(ret, 0, num);
        163.       return ret;

crypto/mem.c:162:9: 
        160.   
        161.       if (ret != NULL)
        162. >         memset(ret, 0, num);
        163.       return ret;
        164.   }

crypto/mem.c:163:5: 
        161.       if (ret != NULL)
        162.           memset(ret, 0, num);
        163. >     return ret;
        164.   }
        165.   

crypto/mem.c:164:1: return from a call to CRYPTO_zalloc
        162.           memset(ret, 0, num);
        163.       return ret;
        164. > }
        165.   
        166.   void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)

crypto/conf/conf_mod.c:285:9: Taking false branch
      283.           return NULL;
      284.       tmod = OPENSSL_zalloc(sizeof(*tmod));
      285.       if (tmod == NULL)
                     ^
      286.           return NULL;
      287.   

crypto/conf/conf_mod.c:288:5: 
      286.           return NULL;
      287.   
      288. >     tmod->dso = dso;
      289.       tmod->name = OPENSSL_strdup(name);
      290.       tmod->init = ifunc;

crypto/conf/conf_mod.c:289:5: 
      287.   
      288.       tmod->dso = dso;
      289. >     tmod->name = OPENSSL_strdup(name);
      290.       tmod->init = ifunc;
      291.       tmod->finish = ffunc;

crypto/o_str.c:121:1: start of procedure CRYPTO_strdup()
        119.   }
        120.   
        121. > char *CRYPTO_strdup(const char *str, const char* file, int line)
        122.   {
        123.       char *ret;

crypto/o_str.c:125:9: Taking false branch
        123.       char *ret;
        124.   
        125.       if (str == NULL)
                       ^
        126.           return NULL;
        127.       ret = CRYPTO_malloc(strlen(str) + 1, file, line);

crypto/o_str.c:127:5: 
        125.       if (str == NULL)
        126.           return NULL;
        127. >     ret = CRYPTO_malloc(strlen(str) + 1, file, line);
        128.       if (ret != NULL)
        129.           strcpy(ret, str);

crypto/mem.c:120:1: start of procedure CRYPTO_malloc()
          118.   }
          119.   
          120. > void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122.       void *ret = NULL;

crypto/mem.c:122:5: 
          120.   void *CRYPTO_malloc(size_t num, const char *file, int line)
          121.   {
          122. >     void *ret = NULL;
          123.   
          124.       if (num <= 0)

crypto/mem.c:124:9: Taking false branch
          122.       void *ret = NULL;
          123.   
          124.       if (num <= 0)
                         ^
          125.           return NULL;
          126.   

crypto/mem.c:127:5: 
          125.           return NULL;
          126.   
          127. >     allow_customize = 0;
          128.   #ifdef CRYPTO_MDEBUG
          129.       if (call_malloc_debug) {

crypto/mem.c:137:5: 
          135.       }
          136.   #else
          137. >     (void)file;
          138.       (void)line;
          139.       ret = malloc(num);

crypto/mem.c:138:5: 
          136.   #else
          137.       (void)file;
          138. >     (void)line;
          139.       ret = malloc(num);
          140.   #endif

crypto/mem.c:139:5: 
          137.       (void)file;
          138.       (void)line;
          139. >     ret = malloc(num);
          140.   #endif
          141.   

crypto/mem.c:154:5: 
          152.   #endif
          153.   
          154. >     return ret;
          155.   }
          156.   

crypto/mem.c:155:1: return from a call to CRYPTO_malloc
          153.   
          154.       return ret;
          155. > }
          156.   
          157.   void *CRYPTO_zalloc(size_t num, const char *file, int line)

crypto/o_str.c:128:9: Taking true branch
        126.           return NULL;
        127.       ret = CRYPTO_malloc(strlen(str) + 1, file, line);
        128.       if (ret != NULL)
                       ^
        129.           strcpy(ret, str);
        130.       return ret;

crypto/o_str.c:129:9: 
        127.       ret = CRYPTO_malloc(strlen(str) + 1, file, line);
        128.       if (ret != NULL)
        129. >         strcpy(ret, str);
        130.       return ret;
        131.   }

crypto/o_str.c:130:5: 
        128.       if (ret != NULL)
        129.           strcpy(ret, str);
        130. >     return ret;
        131.   }
        132.   

crypto/o_str.c:131:1: return from a call to CRYPTO_strdup
        129.           strcpy(ret, str);
        130.       return ret;
        131. > }
        132.   
        133.   char *CRYPTO_strndup(const char *str, size_t s, const char* file, int line)

crypto/conf/conf_mod.c:290:5: 
      288.       tmod->dso = dso;
      289.       tmod->name = OPENSSL_strdup(name);
      290. >     tmod->init = ifunc;
      291.       tmod->finish = ffunc;
      292.   

crypto/conf/conf_mod.c:291:5: 
      289.       tmod->name = OPENSSL_strdup(name);
      290.       tmod->init = ifunc;
      291. >     tmod->finish = ffunc;
      292.   
      293.       if (!sk_CONF_MODULE_push(supported_modules, tmod)) {

crypto/conf/conf_mod.c:293:10: 
      291.       tmod->finish = ffunc;
      292.   
      293. >     if (!sk_CONF_MODULE_push(supported_modules, tmod)) {
      294.           OPENSSL_free(tmod);
      295.           return NULL;

include/openssl/conf.h:105:1: start of procedure sk_CONF_MODULE_push()
        103.   typedef struct conf_module_st CONF_MODULE;
        104.   
        105. > DEFINE_STACK_OF(CONF_MODULE)
        106.   DEFINE_STACK_OF(CONF_IMODULE)
        107.   

crypto/stack/stack.c:259:1: start of procedure sk_push()
          257.   }
          258.   
          259. > int sk_push(_STACK *st, void *data)
          260.   {
          261.       return (sk_insert(st, data, st->num));

crypto/stack/stack.c:261:5: 
          259.   int sk_push(_STACK *st, void *data)
          260.   {
          261. >     return (sk_insert(st, data, st->num));
          262.   }
          263.   

crypto/stack/stack.c:167:1: start of procedure sk_insert()
            165.   }
            166.   
            167. > int sk_insert(_STACK *st, void *data, int loc)
            168.   {
            169.       char **s;

crypto/stack/stack.c:171:9: Taking false branch
            169.       char **s;
            170.   
            171.       if (st == NULL)
                           ^
            172.           return 0;
            173.       if (st->num_alloc <= st->num + 1) {

crypto/stack/stack.c:173:9: Taking false branch
            171.       if (st == NULL)
            172.           return 0;
            173.       if (st->num_alloc <= st->num + 1) {
                           ^
            174.           s = OPENSSL_realloc((char *)st->data,
            175.                               (unsigned int)sizeof(char *) * st->num_alloc * 2);

crypto/stack/stack.c:181:10: Taking true branch
            179.           st->num_alloc *= 2;
            180.       }
            181.       if ((loc >= (int)st->num) || (loc < 0))
                            ^
            182.           st->data[st->num] = data;
            183.       else {

crypto/stack/stack.c:182:9: 
            180.       }
            181.       if ((loc >= (int)st->num) || (loc < 0))
            182. >         st->data[st->num] = data;
            183.       else {
            184.           memmove(&(st->data[loc + 1]),

crypto/stack/stack.c:188:5: 
            186.           st->data[loc] = data;
            187.       }
            188. >     st->num++;
            189.       st->sorted = 0;
            190.       return (st->num);

crypto/stack/stack.c:189:5: 
            187.       }
            188.       st->num++;
            189. >     st->sorted = 0;
            190.       return (st->num);
            191.   }

crypto/stack/stack.c:190:5: 
            188.       st->num++;
            189.       st->sorted = 0;
            190. >     return (st->num);
            191.   }
            192.   

crypto/stack/stack.c:191:1: return from a call to sk_insert
            189.       st->sorted = 0;
            190.       return (st->num);
            191. > }
            192.   
            193.   void *sk_delete_ptr(_STACK *st, void *p)

crypto/stack/stack.c:262:1: return from a call to sk_push
          260.   {
          261.       return (sk_insert(st, data, st->num));
          262. > }
          263.   
          264.   int sk_unshift(_STACK *st, void *data)

include/openssl/conf.h:105:1: return from a call to sk_CONF_MODULE_push
        103.   typedef struct conf_module_st CONF_MODULE;
        104.   
        105. > DEFINE_STACK_OF(CONF_MODULE)
        106.   DEFINE_STACK_OF(CONF_IMODULE)
        107.   

crypto/conf/conf_mod.c:293:10: Taking false branch
      291.       tmod->finish = ffunc;
      292.   
      293.       if (!sk_CONF_MODULE_push(supported_modules, tmod)) {
                      ^
      294.           OPENSSL_free(tmod);
      295.           return NULL;

crypto/conf/conf_mod.c:298:5: 
      296.       }
      297.   
      298. >     return tmod;
      299.   }
      300.   

crypto/conf/conf_mod.c:299:1: return from a call to module_add
      297.   
      298.       return tmod;
      299. > }
      300.   
      301.   /*

crypto/conf/conf_mod.c:460:9: Taking true branch
    458.                       conf_finish_func *ffunc)
    459.   {
    460.       if (module_add(NULL, name, ifunc, ffunc))
                   ^
    461.           return 1;
    462.       else

crypto/conf/conf_mod.c:461:9: 
    459.   {
    460.       if (module_add(NULL, name, ifunc, ffunc))
    461. >         return 1;
    462.       else
    463.           return 0;

crypto/conf/conf_mod.c:464:1: return from a call to CONF_module_add
    462.       else
    463.           return 0;
    464. > }
    465.   
    466.   void CONF_modules_free(void)

crypto/asn1/asn_mstbl.c:97:1: return from a call to ASN1_add_stable_module
  95.   {
  96.       CONF_module_add("stbl_section", stbl_module_init, stbl_module_finish);
  97. > }
  98.   
  99.   /*

void OPENSSL_load_builtin_modules(void)
{
    ASN1_add_oid_module();
    ASN1_add_stable_module();
#ifndef OPENSSL_NO_ENGINE
    ENGINE_add_conf_module();
#endif
    EVP_add_alg_module();
}
['void OPENSSL_load_builtin_modules(void)\n{\n    ASN1_add_oid_module();\n    ASN1_add_stable_module();\n#ifndef OPENSSL_NO_ENGINE\n    ENGINE_add_conf_module();\n#endif\n    EVP_add_alg_module();\n}', 'void ASN1_add_oid_module(void)\n{\n    CONF_module_add("oid_section", oid_module_init, oid_module_finish);\n}', 'int CONF_module_add(const char *name, conf_init_func *ifunc,\n                    conf_finish_func *ffunc)\n{\n    if (module_add(NULL, name, ifunc, ffunc))\n        return 1;\n    else\n        return 0;\n}', 'static CONF_MODULE *module_add(DSO *dso, const char *name,\n                               conf_init_func *ifunc, conf_finish_func *ffunc)\n{\n    CONF_MODULE *tmod = NULL;\n    if (supported_modules == NULL)\n        supported_modules = sk_CONF_MODULE_new_null();\n    if (supported_modules == NULL)\n        return NULL;\n    tmod = OPENSSL_zalloc(sizeof(*tmod));\n    if (tmod == NULL)\n        return NULL;\n    tmod->dso = dso;\n    tmod->name = OPENSSL_strdup(name);\n    tmod->init = ifunc;\n    tmod->finish = ffunc;\n    if (!sk_CONF_MODULE_push(supported_modules, tmod)) {\n        OPENSSL_free(tmod);\n        return NULL;\n    }\n    return tmod;\n}', 'void *CRYPTO_zalloc(size_t num, const char *file, int line)\n{\n    void *ret = CRYPTO_malloc(num, file, line);\n    if (ret != NULL)\n        memset(ret, 0, num);\n    return ret;\n}', 'void *CRYPTO_malloc(size_t num, const char *file, int line)\n{\n    void *ret = NULL;\n    if (num <= 0)\n        return NULL;\n    allow_customize = 0;\n#ifdef CRYPTO_MDEBUG\n    if (call_malloc_debug) {\n        CRYPTO_mem_debug_malloc(NULL, num, 0, file, line);\n        ret = malloc(num);\n        CRYPTO_mem_debug_malloc(ret, num, 1, file, line);\n    } else {\n        ret = malloc(num);\n    }\n#else\n    (void)file;\n    (void)line;\n    ret = malloc(num);\n#endif\n#ifndef OPENSSL_CPUID_OBJ\n    if (ret && (num > 2048)) {\n        extern unsigned char cleanse_ctr;\n        ((unsigned char *)ret)[0] = cleanse_ctr;\n    }\n#endif\n    return ret;\n}', 'char *CRYPTO_strdup(const char *str, const char* file, int line)\n{\n    char *ret;\n    if (str == NULL)\n        return NULL;\n    ret = CRYPTO_malloc(strlen(str) + 1, file, line);\n    if (ret != NULL)\n        strcpy(ret, str);\n    return ret;\n}', 'int sk_push(_STACK *st, void *data)\n{\n    return (sk_insert(st, data, st->num));\n}', 'int sk_insert(_STACK *st, void *data, int loc)\n{\n    char **s;\n    if (st == NULL)\n        return 0;\n    if (st->num_alloc <= st->num + 1) {\n        s = OPENSSL_realloc((char *)st->data,\n                            (unsigned int)sizeof(char *) * st->num_alloc * 2);\n        if (s == NULL)\n            return (0);\n        st->data = s;\n        st->num_alloc *= 2;\n    }\n    if ((loc >= (int)st->num) || (loc < 0))\n        st->data[st->num] = data;\n    else {\n        memmove(&(st->data[loc + 1]),\n                &(st->data[loc]), sizeof(char *) * (st->num - loc));\n        st->data[loc] = data;\n    }\n    st->num++;\n    st->sorted = 0;\n    return (st->num);\n}', 'void ASN1_add_stable_module(void)\n{\n    CONF_module_add("stbl_section", stbl_module_init, stbl_module_finish);\n}']