BUFerr(BUF_F_BUF_MEM_GROW,ERR_R_MALLOC_FAILURE);
BUFerr(BUF_F_BUF_MEM_GROW_CLEAN,ERR_R_MALLOC_FAILURE);
int BUF_MEM_grow_clean(BUF_MEM *str, int len)	{	char *ret;	unsigned int n;	if (str->length >= len)		{		memset(&str->data[len],0,str->length-len);		str->length=len;		return(len);		}	if (str->max >= len)		{		memset(&str->data[str->length],0,len-str->length);		str->length=len;		return(len);		}	n=(len+3)/3*4;	if (str->data == NULL)		ret=OPENSSL_malloc(n);	else		ret=OPENSSL_realloc_clean(str->data,str->max,n);	if (ret == NULL)		{		BUFerr(BUF_F_BUF_MEM_GROW,ERR_R_MALLOC_FAILURE);		len=0;		}	else		{		str->data=ret;		str->max=n;		memset(&str->data[str->length],0,len-str->length);		str->length=len;		}	return(len);	}