ssl/ssl_lib.c:2797: 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:2771:1: Parameter `s->initial_ctx->sessions->num_nodes`
2769.   }
2770.   
2771. > void ssl_update_cache(SSL *s, int mode)
2772.   {
2773.       int i;

ssl/ssl_lib.c:2797:13: Call
2795.                 ? s->session_ctx->stats.sess_connect_good
2796.                 : s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) {
2797.               SSL_CTX_flush_sessions(s->session_ctx, (unsigned long)time(NULL));
                    ^
2798.           }
2799.       }

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

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

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

ssl/ssl_sess.c:967:1: Call
    965.   }
    966.   
    967. > IMPLEMENT_LHASH_DOALL_ARG(SSL_SESSION, TIMEOUT_PARAM);
    968.   
    969.   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, 1+max(0, s->initial_ctx->sessions->num_nodes)] - 1):unsigned32 by call to `SSL_CTX_flush_sessions` 
        162.        * memory leaks otherwise
        163.        */
        164.       for (i = lh->num_nodes - 1; i >= 0; i--) {
                        ^
        165.           a = lh->b[i];
        166.           while (a != NULL) {
