int ret= -1; CRYPTO_EX_DATA_FUNCS *a;
int ret = -1;
int CRYPTO_get_ex_new_index(int idx, STACK_OF(CRYPTO_EX_DATA_FUNCS) **skp, long argl, void *argp,	     CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)	{	int ret= -1;	CRYPTO_EX_DATA_FUNCS *a;	MemCheck_off();	if (*skp == NULL)		*skp=sk_CRYPTO_EX_DATA_FUNCS_new_null();	if (*skp == NULL)		{		CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE);		goto err;		}	a=(CRYPTO_EX_DATA_FUNCS *)OPENSSL_malloc(sizeof(CRYPTO_EX_DATA_FUNCS));	if (a == NULL)		{		CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE);		goto err;		}	a->argl=argl;	a->argp=argp;	a->new_func=new_func;	a->dup_func=dup_func;	a->free_func=free_func;	while (sk_CRYPTO_EX_DATA_FUNCS_num(*skp) <= idx)		{		if (!sk_CRYPTO_EX_DATA_FUNCS_push(*skp,NULL))			{			CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE);			OPENSSL_free(a);			goto err;			}		}	sk_CRYPTO_EX_DATA_FUNCS_set(*skp,idx, a);	ret=idx;err:	MemCheck_on();	return(ret);	}