test/exdatatest.c:111: error: MEMORY_LEAK
  memory dynamically allocated by call to `strdup()` at line 103, column 9 is not reachable after line 111, column 10.
Showing all 18 steps of the trace


test/exdatatest.c:95:1: start of procedure test_exdata()
93.   }
94.   
95. > static int test_exdata(void)
96.   {
97.       MYOBJ *t1, *t2, *t3;

test/exdatatest.c:101:5: 
99.       char *p;
100.   
101. >     gbl_result = 1;
102.   
103.       p = strdup("hello world");

test/exdatatest.c:103:5: 
101.       gbl_result = 1;
102.   
103. >     p = strdup("hello world");
104.       saved_argl = 21;
105.       saved_argp = malloc(1);

test/exdatatest.c:104:5: 
102.   
103.       p = strdup("hello world");
104. >     saved_argl = 21;
105.       saved_argp = malloc(1);
106.       saved_idx = CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_APP,

test/exdatatest.c:105:5: 
103.       p = strdup("hello world");
104.       saved_argl = 21;
105. >     saved_argp = malloc(1);
106.       saved_idx = CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_APP,
107.                                           saved_argl, saved_argp,

test/exdatatest.c:106:5: Skipping CRYPTO_get_ex_new_index(): empty list of specs
104.       saved_argl = 21;
105.       saved_argp = malloc(1);
106.       saved_idx = CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_APP,
           ^
107.                                           saved_argl, saved_argp,
108.                                           exnew, exdup, exfree);

test/exdatatest.c:109:5: Skipping MYOBJ_new(): empty list of specs
107.                                           saved_argl, saved_argp,
108.                                           exnew, exdup, exfree);
109.       t1 = MYOBJ_new();
           ^
110.       t2 = MYOBJ_new();
111.       if (!TEST_int_eq(t1->st, 1) || !TEST_int_eq(t2->st, 1))

test/exdatatest.c:110:5: Skipping MYOBJ_new(): empty list of specs
108.                                           exnew, exdup, exfree);
109.       t1 = MYOBJ_new();
110.       t2 = MYOBJ_new();
           ^
111.       if (!TEST_int_eq(t1->st, 1) || !TEST_int_eq(t2->st, 1))
112.           return 0;

test/exdatatest.c:111:10: 
109.       t1 = MYOBJ_new();
110.       t2 = MYOBJ_new();
111. >     if (!TEST_int_eq(t1->st, 1) || !TEST_int_eq(t2->st, 1))
112.           return 0;
113.   

test/testutil/tests.c:163:1: start of procedure test_int_eq()
  161.       DEFINE_COMPARISON(type, name, ge, >=, fmt)
  162.   
  163. > DEFINE_COMPARISONS(int, int, "%d")
  164.   DEFINE_COMPARISONS(unsigned int, uint, "%u")
  165.   DEFINE_COMPARISONS(char, char, "%c")

test/testutil/tests.c:163:1: Taking false branch
  161.       DEFINE_COMPARISON(type, name, ge, >=, fmt)
  162.   
  163. > DEFINE_COMPARISONS(int, int, "%d")
  164.   DEFINE_COMPARISONS(unsigned int, uint, "%u")
  165.   DEFINE_COMPARISONS(char, char, "%c")

test/testutil/tests.c:74:1: start of procedure test_fail_message()
    72.   }
    73.   
    74. > static void test_fail_message(const char *prefix, const char *file, int line,
    75.                                 const char *type, const char *fmt, ...)
    76.   {

test/testutil/tests.c:79:5: 
    77.       va_list ap;
    78.   
    79. >     va_start(ap, fmt);
    80.       test_fail_message_va(prefix, file, line, type, fmt, ap);
    81.       va_end(ap);

test/testutil/tests.c:80:5: Skipping test_fail_message_va(): empty list of specs
    78.   
    79.       va_start(ap, fmt);
    80.       test_fail_message_va(prefix, file, line, type, fmt, ap);
              ^
    81.       va_end(ap);
    82.   }

test/testutil/tests.c:81:5: 
    79.       va_start(ap, fmt);
    80.       test_fail_message_va(prefix, file, line, type, fmt, ap);
    81. >     va_end(ap);
    82.   }
    83.   

test/testutil/tests.c:82:1: return from a call to test_fail_message
    80.       test_fail_message_va(prefix, file, line, type, fmt, ap);
    81.       va_end(ap);
    82. > }
    83.   
    84.   void test_info_c90(const char *desc, ...)

test/testutil/tests.c:163:1: return from a call to test_int_eq
  161.       DEFINE_COMPARISON(type, name, ge, >=, fmt)
  162.   
  163. > DEFINE_COMPARISONS(int, int, "%d")
  164.   DEFINE_COMPARISONS(unsigned int, uint, "%u")
  165.   DEFINE_COMPARISONS(char, char, "%c")

test/exdatatest.c:111:10: Taking true branch
109.       t1 = MYOBJ_new();
110.       t2 = MYOBJ_new();
111.       if (!TEST_int_eq(t1->st, 1) || !TEST_int_eq(t2->st, 1))
                ^
112.           return 0;
113.   
