crypto/engine/tb_asnmth.c:236: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned32 by call to `engine_table_doall`.
Showing all 8 steps of the trace


crypto/engine/tb_asnmth.c:236:2: Call
234.   	fstr.len = len;
235.   	CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
236.   	engine_table_doall(pkey_asn1_meth_table, look_str_cb, &fstr);
        ^
237.   	/* If found obtain a structural reference to engine */
238.   	if (fstr.e)

crypto/engine/eng_table.c:342:1: Parameter `table->piles.num_nodes`
  340.   static IMPLEMENT_LHASH_DOALL_ARG_FN(int_cb, ENGINE_PILE,ENGINE_PILE_DOALL)
  341.   
  342. > void engine_table_doall(ENGINE_TABLE *table, engine_table_doall_cb *cb,
  343.   								void *arg)
  344.   	{

crypto/engine/eng_table.c:348:2: Call
  346.   	dall.cb = cb;
  347.   	dall.arg = arg;
  348.   	lh_ENGINE_PILE_doall_arg(&table->piles, LHASH_DOALL_ARG_FN(int_cb),
          ^
  349.   				 ENGINE_PILE_DOALL, &dall);
  350.   	}

crypto/lhash/lhash.c:305:1: Parameter `lh->num_nodes`
    303.   	}
    304.   
    305. > void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
    306.   	{
    307.   	doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);

crypto/lhash/lhash.c:307:2: Call
    305.   void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
    306.   	{
    307.   	doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);
            ^
    308.   	}
    309.   

crypto/lhash/lhash.c:270:1: <LHS trace>
268.   	}
269.   
270. > static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
271.   			  LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
272.   	{

crypto/lhash/lhash.c:270:1: Parameter `lh->num_nodes`
      268.   	}
      269.   
      270. > static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
      271.   			  LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
      272.   	{

crypto/lhash/lhash.c:281:7: Binary operation: ([0, +oo] - 1):unsigned32 by call to `engine_table_doall` 
      279.   	/* reverse the order so we search from 'top to bottom'
      280.   	 * We were having memory leaks otherwise */
      281.   	for (i=lh->num_nodes-1; i>=0; i--)
                   ^
      282.   		{
      283.   		a=lh->b[i];

static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
			  LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)
	{
	int i;
	LHASH_NODE *a,*n;
	if (lh == NULL)
		return;
	for (i=lh->num_nodes-1; i>=0; i--)
		{
		a=lh->b[i];
		while (a != NULL)
			{
			n=a->next;
			if(use_arg)
				func_arg(a->data,arg);
			else
				func(a->data);
			a=n;
			}
		}
	}
['const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,\n\t\t\t\t\tconst char *str, int len)\n\t{\n\tENGINE_FIND_STR fstr;\n\tfstr.e = NULL;\n\tfstr.ameth = NULL;\n\tfstr.str = str;\n\tfstr.len = len;\n\tCRYPTO_w_lock(CRYPTO_LOCK_ENGINE);\n\tengine_table_doall(pkey_asn1_meth_table, look_str_cb, &fstr);\n\tif (fstr.e)\n\t\t{\n\t\tfstr.e->struct_ref++;\n\t\tengine_ref_debug(fstr.e, 0, 1)\n\t\t}\n\t*pe = fstr.e;\n\tCRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);\n\treturn fstr.ameth;\n\t}', 'void engine_table_doall(ENGINE_TABLE *table, engine_table_doall_cb *cb,\n\t\t\t\t\t\t\t\tvoid *arg)\n\t{\n\tENGINE_PILE_DOALL dall;\n\tdall.cb = cb;\n\tdall.arg = arg;\n\tlh_ENGINE_PILE_doall_arg(&table->piles, LHASH_DOALL_ARG_FN(int_cb),\n\t\t\t\t ENGINE_PILE_DOALL, &dall);\n\t}', 'void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)\n\t{\n\tdoall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)0, func, arg);\n\t}', 'static void doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,\n\t\t\t  LHASH_DOALL_ARG_FN_TYPE func_arg, void *arg)\n\t{\n\tint i;\n\tLHASH_NODE *a,*n;\n\tif (lh == NULL)\n\t\treturn;\n\tfor (i=lh->num_nodes-1; i>=0; i--)\n\t\t{\n\t\ta=lh->b[i];\n\t\twhile (a != NULL)\n\t\t\t{\n\t\t\tn=a->next;\n\t\t\tif(use_arg)\n\t\t\t\tfunc_arg(a->data,arg);\n\t\t\telse\n\t\t\t\tfunc(a->data);\n\t\t\ta=n;\n\t\t\t}\n\t\t}\n\t}']