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


ssl/ssl_lib.c:3354:1: Parameter `s->session_ctx->sessions->num_nodes`
3352.   }
3353.   
3354. > void ssl_update_cache(SSL *s, int mode)
3355.   {
3356.       int i;

ssl/ssl_lib.c:3421:13: Call
3419.               stat = &s->session_ctx->stats.sess_accept_good;
3420.           if ((tsan_load(stat) & 0xff) == 0xff)
3421.               SSL_CTX_flush_sessions(s->session_ctx, (unsigned long)time(NULL));
                    ^
3422.       }
3423.   }

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:207:1: Parameter `lh->num_nodes`
      205.   }
      206.   
      207. > void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg)
      208.   {
      209.       doall_util_fn(lh, 1, (OPENSSL_LH_DOALL_FUNC)0, func, arg);

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

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

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

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