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


test/sslapitest.c:90:10: Call
88.       int testresult = 0;
89.   
90.       if (!create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(), &sctx,
               ^
91.                                &cctx, cert, privkey)) {
92.           printf("Unable to create SSL_CTX pair\n");

test/ssltestlib.c:19:17: Call
  17.       SSL_CTX *clientctx = NULL;
  18.   
  19.       serverctx = SSL_CTX_new(sm);
                        ^
  20.       clientctx = SSL_CTX_new(cm);
  21.       if (serverctx == NULL || clientctx == NULL) {

ssl/ssl_lib.c:2358:21: Call
    2356.           goto err;
    2357.   
    2358.       ret->sessions = lh_SSL_SESSION_new(ssl_session_hash, ssl_session_cmp);
                                ^
    2359.       if (ret->sessions == NULL)
    2360.           goto err;

ssl/ssl_locl.h:581:1: Call
      579.   };
      580.   
      581. > DEFINE_LHASH_OF(SSL_SESSION);
      582.   /* Needed in ssl_cert.c */
      583.   DEFINE_LHASH_OF(X509_NAME);

crypto/lhash/lhash.c:37:5: Assignment
        35.       ret->comp = ((c == NULL) ? (OPENSSL_LH_COMPFUNC)strcmp : c);
        36.       ret->hash = ((h == NULL) ? (OPENSSL_LH_HASHFUNC)OPENSSL_LH_strhash : h);
        37.       ret->num_nodes = MIN_NODES / 2;
                  ^
        38.       ret->num_alloc_nodes = MIN_NODES;
        39.       ret->pmax = MIN_NODES / 2;

test/sslapitest.c:163:5: Call
161.       testresult = 1;
162.    end:
163.       SSL_free(serverssl1);
           ^
164.       SSL_free(clientssl1);
165.       SSL_free(serverssl2);

ssl/ssl_lib.c:963:1: Parameter `s->ctx->sessions->num_nodes`
  961.   }
  962.   
  963. > void SSL_free(SSL *s)
  964.   {
  965.       int i;

ssl/ssl_lib.c:1035:5: Call
  1033.       RECORD_LAYER_release(&s->rlayer);
  1034.   
  1035.       SSL_CTX_free(s->ctx);
              ^
  1036.   
  1037.       ASYNC_WAIT_CTX_free(s->waitctx);

ssl/ssl_lib.c:2466:1: Parameter `a->sessions->num_nodes`
    2464.   }
    2465.   
    2466. > void SSL_CTX_free(SSL_CTX *a)
    2467.   {
    2468.       int i;

ssl/ssl_lib.c:2492:9: Call
    2490.        */
    2491.       if (a->sessions != NULL)
    2492.           SSL_CTX_flush_sessions(a, 0);
                    ^
    2493.   
    2494.       CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data);

ssl/ssl_sess.c:968:1: Parameter `s->sessions->num_nodes`
      966.   IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
      967.   
      968. > void SSL_CTX_flush_sessions(SSL_CTX *s, long t)
      969.   {
      970.       unsigned long i;

ssl/ssl_sess.c:981:5: Call
      979.       i = lh_SSL_SESSION_get_down_load(s->sessions);
      980.       lh_SSL_SESSION_set_down_load(s->sessions, 0);
      981.       lh_SSL_SESSION_doall_TIMEOUT_PARAM(tp.cache, timeout_cb, &tp);
                 ^
      982.       lh_SSL_SESSION_set_down_load(s->sessions, i);
      983.       CRYPTO_THREAD_unlock(s->lock);

ssl/ssl_sess.c:966:1: Parameter `lh->num_nodes`
        964.   }
        965.   
        966. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
        967.   
        968.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

ssl/ssl_sess.c:966:1: Call
        964.   }
        965.   
        966. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
        967.   
        968.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

crypto/lhash/lhash.c:182:1: Parameter `lh->num_nodes`
          180.   }
          181.   
          182. > void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
          183.   {
          184.       doall_util_fn(lh, 1, (OPENSSL_LH_DOALL_FUNC)0, func, arg);

crypto/lhash/lhash.c:184:5: Call
          182.   void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
          183.   {
          184.       doall_util_fn(lh, 1, (OPENSSL_LH_DOALL_FUNC)0, func, arg);
                     ^
          185.   }
          186.   

crypto/lhash/lhash.c:150:1: <LHS trace>
148.   }
149.   
150. > static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,
151.                             OPENSSL_LH_DOALL_FUNC func,
152.                             OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)

crypto/lhash/lhash.c:150:1: Parameter `lh->num_nodes`
            148.   }
            149.   
            150. > static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,
            151.                             OPENSSL_LH_DOALL_FUNC func,
            152.                             OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)

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