crypto/err/err.c:353: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned64 by call to `lh_ERR_STRING_DATA_delete`.
Showing all 26 steps of the trace


crypto/err/err.c:353:15: Call
351.        */
352.       for (; str->error; str++)
353.           (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);
                     ^
354.       CRYPTO_THREAD_unlock(err_string_lock);
355.   

include/openssl/err.h:215:1: Parameter `lh->num_items`
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

include/openssl/err.h:215:1: Call
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

crypto/lhash/lhash.c:102:1: Parameter `lh->num_items`
    100.   }
    101.   
    102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
    103.   {
    104.       unsigned long hash;

crypto/err/err.c:353:15: Call
351.        */
352.       for (; str->error; str++)
353.           (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);
                     ^
354.       CRYPTO_THREAD_unlock(err_string_lock);
355.   

include/openssl/err.h:215:1: Parameter `lh->num_items`
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

include/openssl/err.h:215:1: Call
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

crypto/lhash/lhash.c:102:1: Parameter `lh->num_items`
    100.   }
    101.   
    102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
    103.   {
    104.       unsigned long hash;

crypto/err/err.c:353:15: Call
351.        */
352.       for (; str->error; str++)
353.           (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);
                     ^
354.       CRYPTO_THREAD_unlock(err_string_lock);
355.   

include/openssl/err.h:215:1: Parameter `lh->num_items`
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

include/openssl/err.h:215:1: Call
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

crypto/lhash/lhash.c:102:1: Parameter `lh->num_items`
    100.   }
    101.   
    102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
    103.   {
    104.       unsigned long hash;

crypto/err/err.c:353:15: Call
351.        */
352.       for (; str->error; str++)
353.           (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);
                     ^
354.       CRYPTO_THREAD_unlock(err_string_lock);
355.   

include/openssl/err.h:215:1: Parameter `lh->num_items`
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

include/openssl/err.h:215:1: Call
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

crypto/lhash/lhash.c:102:1: Parameter `lh->num_items`
    100.   }
    101.   
    102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
    103.   {
    104.       unsigned long hash;

crypto/err/err.c:353:15: Call
351.        */
352.       for (; str->error; str++)
353.           (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);
                     ^
354.       CRYPTO_THREAD_unlock(err_string_lock);
355.   

include/openssl/err.h:215:1: Parameter `lh->num_items`
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

include/openssl/err.h:215:1: Call
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

crypto/lhash/lhash.c:102:1: Parameter `lh->num_items`
    100.   }
    101.   
    102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
    103.   {
    104.       unsigned long hash;

crypto/err/err.c:353:15: Call
351.        */
352.       for (; str->error; str++)
353.           (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);
                     ^
354.       CRYPTO_THREAD_unlock(err_string_lock);
355.   

include/openssl/err.h:215:1: Parameter `lh->num_items`
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

include/openssl/err.h:215:1: Call
  213.   } ERR_STRING_DATA;
  214.   
  215. > DEFINE_LHASH_OF(ERR_STRING_DATA);
  216.   
  217.   void ERR_put_error(int lib, int func, int reason, const char *file, int line);

crypto/lhash/lhash.c:102:1: <LHS trace>
100.   }
101.   
102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
103.   {
104.       unsigned long hash;

crypto/lhash/lhash.c:102:1: Parameter `lh->num_items`
    100.   }
    101.   
    102. > void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
    103.   {
    104.       unsigned long hash;

crypto/lhash/lhash.c:122:5: Binary operation: ([0, +oo] - 1):unsigned64 by call to `lh_ERR_STRING_DATA_delete` 
    120.       }
    121.   
    122.       lh->num_items--;
               ^
    123.       if ((lh->num_nodes > MIN_NODES) &&
    124.           (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))

void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
{
    unsigned long hash;
    OPENSSL_LH_NODE *nn, **rn;
    void *ret;
    lh->error = 0;
    rn = getrn(lh, data, &hash);
    if (*rn == NULL) {
        lh->num_no_delete++;
        return NULL;
    } else {
        nn = *rn;
        *rn = nn->next;
        ret = nn->data;
        OPENSSL_free(nn);
        lh->num_delete++;
    }
    lh->num_items--;
    if ((lh->num_nodes > MIN_NODES) &&
        (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))
        contract(lh);
    return ret;
}
['int ERR_unload_strings(int lib, ERR_STRING_DATA *str)\n{\n    if (!RUN_ONCE(&err_string_init, do_err_strings_init))\n        return 0;\n    CRYPTO_THREAD_write_lock(err_string_lock);\n    for (; str->error; str++)\n        (void)lh_ERR_STRING_DATA_delete(int_error_hash, str);\n    CRYPTO_THREAD_unlock(err_string_lock);\n    return 1;\n}', 'DEFINE_LHASH_OF(ERR_STRING_DATA)', 'void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)\n{\n    unsigned long hash;\n    OPENSSL_LH_NODE *nn, **rn;\n    void *ret;\n    lh->error = 0;\n    rn = getrn(lh, data, &hash);\n    if (*rn == NULL) {\n        lh->num_no_delete++;\n        return NULL;\n    } else {\n        nn = *rn;\n        *rn = nn->next;\n        ret = nn->data;\n        OPENSSL_free(nn);\n        lh->num_delete++;\n    }\n    lh->num_items--;\n    if ((lh->num_nodes > MIN_NODES) &&\n        (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))\n        contract(lh);\n    return ret;\n}']