test/cipherlist_test.c:247: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned32 by call to `SSL_free`.
Showing all 19 steps of the trace


test/cipherlist_test.c:221:5: Call
219.   static int test_default_cipherlist_clear(void)
220.   {
221.       SETUP_CIPHERLIST_TEST_FIXTURE();
           ^
222.       SSL *s = NULL;
223.   

test/cipherlist_test.c:48:10: Call
  46.           return NULL;
  47.       fixture->test_case_name = test_case_name;
  48.       if (!TEST_ptr(fixture->server = SSL_CTX_new(TLS_server_method()))
                 ^
  49.               || !TEST_ptr(fixture->client = SSL_CTX_new(TLS_client_method()))) {
  50.           tear_down(fixture);

ssl/ssl_lib.c:3010:21: Call
    3008.           goto err;
    3009.   
    3010.       ret->sessions = lh_SSL_SESSION_new(ssl_session_hash, ssl_session_cmp);
                                ^
    3011.       if (ret->sessions == NULL)
    3012.           goto err;

ssl/ssl_locl.h:736:1: Call
      734.   } TLSEXT_INDEX;
      735.   
      736. > DEFINE_LHASH_OF(SSL_SESSION);
      737.   /* Needed in ssl_cert.c */
      738.   DEFINE_LHASH_OF(X509_NAME);

crypto/lhash/lhash.c:63:5: Assignment
        61.       ret->comp = ((c == NULL) ? (OPENSSL_LH_COMPFUNC)strcmp : c);
        62.       ret->hash = ((h == NULL) ? (OPENSSL_LH_HASHFUNC)OPENSSL_LH_strhash : h);
        63.       ret->num_nodes = MIN_NODES / 2;
                  ^
        64.       ret->num_alloc_nodes = MIN_NODES;
        65.       ret->pmax = MIN_NODES / 2;

test/cipherlist_test.c:247:5: Call
245.       result = 1;
246.   end:
247.       SSL_free(s);
           ^
248.       tear_down(fixture);
249.       return result;

ssl/ssl_lib.c:1137:1: Parameter `s->ctx->sessions->num_nodes`
  1135.   }
  1136.   
  1137. > void SSL_free(SSL *s)
  1138.   {
  1139.       int i;

ssl/ssl_lib.c:1212:5: Call
  1210.           s->method->ssl_free(s);
  1211.   
  1212.       SSL_CTX_free(s->ctx);
              ^
  1213.   
  1214.       ASYNC_WAIT_CTX_free(s->waitctx);

ssl/ssl_lib.c:3171:1: Parameter `a->sessions->num_nodes`
    3169.   }
    3170.   
    3171. > void SSL_CTX_free(SSL_CTX *a)
    3172.   {
    3173.       int i;

ssl/ssl_lib.c:3197:9: Call
    3195.        */
    3196.       if (a->sessions != NULL)
    3197.           SSL_CTX_flush_sessions(a, 0);
                    ^
    3198.   
    3199.       CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data);

ssl/ssl_sess.c:1106:1: Parameter `s->sessions->num_nodes`
      1104.   IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
      1105.   
      1106. > void SSL_CTX_flush_sessions(SSL_CTX *s, long t)
      1107.   {
      1108.       unsigned long i;

ssl/ssl_sess.c:1119:5: Call
      1117.       i = lh_SSL_SESSION_get_down_load(s->sessions);
      1118.       lh_SSL_SESSION_set_down_load(s->sessions, 0);
      1119.       lh_SSL_SESSION_doall_TIMEOUT_PARAM(tp.cache, timeout_cb, &tp);
                  ^
      1120.       lh_SSL_SESSION_set_down_load(s->sessions, i);
      1121.       CRYPTO_THREAD_unlock(s->lock);

ssl/ssl_sess.c:1104:1: Parameter `lh->num_nodes`
        1102.   }
        1103.   
        1104. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
        1105.   
        1106.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

ssl/ssl_sess.c:1104:1: Call
        1102.   }
        1103.   
        1104. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
        1105.   
        1106.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

crypto/lhash/lhash.c:209:1: Parameter `lh->num_nodes`
          207.   }
          208.   
          209. > void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
          210.   {
          211.       doall_util_fn(lh, 1, (OPENSSL_LH_DOALL_FUNC)0, func, arg);

crypto/lhash/lhash.c:211:5: Call
          209.   void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
          210.   {
          211.       doall_util_fn(lh, 1, (OPENSSL_LH_DOALL_FUNC)0, func, arg);
                     ^
          212.   }
          213.   

crypto/lhash/lhash.c:177:1: <LHS trace>
175.   }
176.   
177. > static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,
178.                             OPENSSL_LH_DOALL_FUNC func,
179.                             OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)

crypto/lhash/lhash.c:177:1: Parameter `lh->num_nodes`
            175.   }
            176.   
            177. > static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,
            178.                             OPENSSL_LH_DOALL_FUNC func,
            179.                             OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)

crypto/lhash/lhash.c:191:10: Binary operation: ([0, +oo] - 1):unsigned32 by call to `SSL_free` 
            189.        * memory leaks otherwise
            190.        */
            191.       for (i = lh->num_nodes - 1; i >= 0; i--) {
                            ^
            192.           a = lh->b[i];
            193.           while (a != NULL) {
