ssl/ssl_lib.c:767: error: INTEGER_OVERFLOW_L2
  ([0, max(0, `ctx->sessions->num_nodes`)] - 1):unsigned32 by call to `SSL_free`.
Showing all 15 steps of the trace


ssl/ssl_lib.c:617:1: Parameter `ctx->sessions->num_nodes`
615.   }
616.   
617. > SSL *SSL_new(SSL_CTX *ctx)
618.   {
619.       SSL *s;

ssl/ssl_lib.c:767:5: Call
765.       return s;
766.    err:
767.       SSL_free(s);
           ^
768.       SSLerr(SSL_F_SSL_NEW, ERR_R_MALLOC_FAILURE);
769.       return NULL;

ssl/ssl_lib.c:1013:1: Parameter `s->initial_ctx->sessions->num_nodes`
  1011.   }
  1012.   
  1013. > void SSL_free(SSL *s)
  1014.   {
  1015.       int i;

ssl/ssl_lib.c:1060:5: Call
  1058.   
  1059.       OPENSSL_free(s->tlsext_hostname);
  1060.       SSL_CTX_free(s->initial_ctx);
              ^
  1061.   #ifndef OPENSSL_NO_EC
  1062.       OPENSSL_free(s->tlsext_ecpointformatlist);

ssl/ssl_lib.c:2493:1: Parameter `a->sessions->num_nodes`
    2491.   }
    2492.   
    2493. > void SSL_CTX_free(SSL_CTX *a)
    2494.   {
    2495.       int i;

ssl/ssl_lib.c:2519:9: Call
    2517.        */
    2518.       if (a->sessions != NULL)
    2519.           SSL_CTX_flush_sessions(a, 0);
                    ^
    2520.   
    2521.       CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data);

ssl/ssl_sess.c:1074:1: Parameter `s->sessions->num_nodes`
      1072.   IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
      1073.   
      1074. > void SSL_CTX_flush_sessions(SSL_CTX *s, long t)
      1075.   {
      1076.       unsigned long i;

ssl/ssl_sess.c:1087:5: Call
      1085.       i = CHECKED_LHASH_OF(SSL_SESSION, tp.cache)->down_load;
      1086.       CHECKED_LHASH_OF(SSL_SESSION, tp.cache)->down_load = 0;
      1087.       lh_SSL_SESSION_doall_TIMEOUT_PARAM(tp.cache, timeout_cb, &tp);
                  ^
      1088.       CHECKED_LHASH_OF(SSL_SESSION, tp.cache)->down_load = i;
      1089.       CRYPTO_THREAD_unlock(s->lock);

ssl/ssl_sess.c:1072:1: Parameter `lh->num_nodes`
        1070.   }
        1071.   
        1072. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
        1073.   
        1074.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

ssl/ssl_sess.c:1072:1: Call
        1070.   }
        1071.   
        1072. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
        1073.   
        1074.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

crypto/lhash/lhash.c:273:1: Parameter `lh->num_nodes`
          271.   }
          272.   
          273. > void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
          274.   {
          275.       doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);

crypto/lhash/lhash.c:275:5: Call
          273.   void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
          274.   {
          275.       doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);
                     ^
          276.   }
          277.   

crypto/lhash/lhash.c:235:1: <LHS trace>
233.   }
234.   
235. > static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
236.                             LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
237.   {

crypto/lhash/lhash.c:235:1: Parameter `lh->num_nodes`
            233.   }
            234.   
            235. > static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
            236.                             LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
            237.   {

crypto/lhash/lhash.c:248:10: Binary operation: ([0, max(0, ctx->sessions->num_nodes)] - 1):unsigned32 by call to `SSL_free` 
            246.        * memory leaks otherwise
            247.        */
            248.       for (i = lh->num_nodes - 1; i >= 0; i--) {
                            ^
            249.           a = lh->b[i];
            250.           while (a != NULL) {
