CRYPTO_r_unlock(CRYPTO_LOCK_ERR_HASH);
CRYPTO_w_unlock(CRYPTO_LOCK_ERR_HASH);
const char *ERR_lib_error_string(unsigned long e)	{	ERR_STRING_DATA d,*p=NULL;	unsigned long l;	l=ERR_GET_LIB(e);	CRYPTO_r_lock(CRYPTO_LOCK_ERR_HASH);	if (error_hash != NULL)		{		d.error=ERR_PACK(l,0,0);		p=(ERR_STRING_DATA *)lh_retrieve(error_hash,&d);		}	CRYPTO_r_unlock(CRYPTO_LOCK_ERR_HASH);	return((p == NULL)?NULL:p->string);	}