ssl/ssl_lib.c:2777: error: INTEGER_OVERFLOW_L2
  ([0, 1+max(0, `s->initial_ctx->sessions->num_nodes`)] - 1):unsigned32 by call to `SSL_CTX_flush_sessions`.
Showing all 11 steps of the trace


ssl/ssl_lib.c:2751:1: Parameter `s->initial_ctx->sessions->num_nodes`
2749.   }
2750.   
2751. > void ssl_update_cache(SSL *s, int mode)
2752.   {
2753.       int i;

ssl/ssl_lib.c:2777:13: Call
2775.                 ? s->session_ctx->stats.sess_connect_good
2776.                 : s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) {
2777.               SSL_CTX_flush_sessions(s->session_ctx, (unsigned long)time(NULL));
                    ^
2778.           }
2779.       }

ssl/ssl_sess.c:1065:1: Parameter `s->sessions->num_nodes`
  1063.   IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
  1064.   
  1065. > void SSL_CTX_flush_sessions(SSL_CTX *s, long t)
  1066.   {
  1067.       unsigned long i;

ssl/ssl_sess.c:1078:5: Call
  1076.       i = CHECKED_LHASH_OF(SSL_SESSION, tp.cache)->down_load;
  1077.       CHECKED_LHASH_OF(SSL_SESSION, tp.cache)->down_load = 0;
  1078.       lh_SSL_SESSION_doall_TIMEOUT_PARAM(tp.cache, timeout_cb, &tp);
              ^
  1079.       CHECKED_LHASH_OF(SSL_SESSION, tp.cache)->down_load = i;
  1080.       CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX);

ssl/ssl_sess.c:1063:1: Parameter `lh->num_nodes`
    1061.   }
    1062.   
    1063. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
    1064.   
    1065.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

ssl/ssl_sess.c:1063:1: Call
    1061.   }
    1062.   
    1063. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
    1064.   
    1065.   void SSL_CTX_flush_sessions(SSL_CTX *s, long t)

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

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

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

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

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