crypto/property/property.c:232: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned32 by call to `alg_cleanup`.
Showing all 13 steps of the trace


crypto/property/property.c:215:34: Call
213.           if ((alg = OPENSSL_zalloc(sizeof(*alg))) == NULL
214.                   || (alg->impls = sk_IMPLEMENTATION_new_null()) == NULL
215.                   || (alg->cache = lh_QUERY_new(&query_hash, &query_cmp)) == NULL)
                                        ^
216.               goto err;
217.           alg->nid = nid;

crypto/property/property.c:41:1: Call
  39.   } QUERY;
  40.   
  41. > DEFINE_LHASH_OF(QUERY);
  42.   
  43.   typedef struct {

crypto/lhash/lhash.c:63:5: Assignment
    61.       ret->comp = ((c == NULL) ? (OPENSSL_LH_COMPFUNC)strcmp : c);
    62.       ret->hash = ((h == NULL) ? (OPENSSL_LH_HASHFUNC)OPENSSL_LH_strhash : h);
    63.       ret->num_nodes = MIN_NODES / 2;
              ^
    64.       ret->num_alloc_nodes = MIN_NODES;
    65.       ret->pmax = MIN_NODES / 2;

crypto/property/property.c:232:5: Call
230.   err:
231.       ossl_property_unlock(store);
232.       alg_cleanup(0, alg);
           ^
233.       impl_free(impl);
234.       return 0;

crypto/property/property.c:116:1: Parameter `a->cache->num_nodes`
  114.   }
  115.   
  116. > static void alg_cleanup(ossl_uintmax_t idx, ALGORITHM *a)
  117.   {
  118.       if (a != NULL) {

crypto/property/property.c:120:9: Call
  118.       if (a != NULL) {
  119.           sk_IMPLEMENTATION_pop_free(a->impls, &impl_free);
  120.           lh_QUERY_doall(a->cache, &impl_cache_free);
                 ^
  121.           lh_QUERY_free(a->cache);
  122.           OPENSSL_free(a);

crypto/property/property.c:41:1: Parameter `lh->num_nodes`
    39.   } QUERY;
    40.   
    41. > DEFINE_LHASH_OF(QUERY);
    42.   
    43.   typedef struct {

crypto/property/property.c:41:1: Call
    39.   } QUERY;
    40.   
    41. > DEFINE_LHASH_OF(QUERY);
    42.   
    43.   typedef struct {

crypto/lhash/lhash.c:213:1: Parameter `lh->num_nodes`
      211.   }
      212.   
      213. > void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
      214.   {
      215.       doall_util_fn(lh, 0, func, (OPENSSL_LH_DOALL_FUNCARG)0, NULL);

crypto/lhash/lhash.c:215:5: Call
      213.   void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
      214.   {
      215.       doall_util_fn(lh, 0, func, (OPENSSL_LH_DOALL_FUNCARG)0, NULL);
                 ^
      216.   }
      217.   

crypto/lhash/lhash.c:186:1: <LHS trace>
184.   }
185.   
186. > static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,
187.                             OPENSSL_LH_DOALL_FUNC func,
188.                             OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)

crypto/lhash/lhash.c:186:1: Parameter `lh->num_nodes`
        184.   }
        185.   
        186. > static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,
        187.                             OPENSSL_LH_DOALL_FUNC func,
        188.                             OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)

crypto/lhash/lhash.c:200:10: Binary operation: ([0, +oo] - 1):unsigned32 by call to `alg_cleanup` 
        198.        * memory leaks otherwise
        199.        */
        200.       for (i = lh->num_nodes - 1; i >= 0; i--) {
                        ^
        201.           a = lh->b[i];
        202.           while (a != NULL) {
