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


crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: Parameter `lh->num_items`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: Parameter `lh->num_items`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: Parameter `lh->num_items`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: Parameter `lh->num_items`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/err/err.c:553:19: Call
551.               if (lib)
552.                   str->error |= ERR_PACK(lib, 0, 0);
553.               (void)lh_ERR_STRING_DATA_delete(hash, str);
                         ^
554.           }
555.       }

crypto/lhash/lhash.c:189:1: <LHS trace>
187.   }
188.   
189. > void *lh_delete(_LHASH *lh, const void *data)
190.   {
191.       unsigned long hash;

crypto/lhash/lhash.c:189:1: Parameter `lh->num_items`
  187.   }
  188.   
  189. > void *lh_delete(_LHASH *lh, const void *data)
  190.   {
  191.       unsigned long hash;

crypto/lhash/lhash.c:209:5: Binary operation: ([0, +oo] - 1):unsigned64 by call to `lh_delete` 
  207.       }
  208.   
  209.       lh->num_items--;
             ^
  210.       if ((lh->num_nodes > MIN_NODES) &&
  211.           (lh->down_load >= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)))

void *lh_delete(_LHASH *lh, const void *data)
{
    unsigned long hash;
    LHASH_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);
}
['void ERR_unload_strings(int lib, ERR_STRING_DATA *str)\n{\n    LHASH_OF(ERR_STRING_DATA) *hash;\n    CRYPTO_w_lock(CRYPTO_LOCK_ERR);\n    hash = get_hash(0, 0);\n    if (hash) {\n        for (; str->error; str++) {\n            if (lib)\n                str->error |= ERR_PACK(lib, 0, 0);\n            (void)lh_ERR_STRING_DATA_delete(hash, str);\n        }\n    }\n    CRYPTO_w_unlock(CRYPTO_LOCK_ERR);\n}', 'void *lh_delete(_LHASH *lh, const void *data)\n{\n    unsigned long hash;\n    LHASH_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}']