@@ -345,10 +345,20 @@ umf_result_t umfMemoryProviderCreate(const umf_memory_provider_ops_t *ops,
345345
346346 utils_init_once (& mem_provider_ctl_initialized , provider_ctl_init );
347347 const char * pname = NULL ;
348- if (provider -> ops .get_name (NULL , & pname ) == UMF_RESULT_SUCCESS && pname ) {
349- ctl_default_apply (provider_default_list , pname , provider -> ops .ext_ctl ,
350- provider -> provider_priv );
348+
349+ ret = provider -> ops .get_name (provider -> provider_priv , & pname );
350+ if (ret != UMF_RESULT_SUCCESS ) {
351+ LOG_ERR ("Failed to get pool name" );
352+ umf_ba_global_free (provider );
353+ return ret ;
351354 }
355+
356+ assert (pname != NULL );
357+ utils_warn_invalid_name ("Memory provider" , pname );
358+
359+ ctl_default_apply (provider_default_list , pname , provider -> ops .ext_ctl ,
360+ provider -> provider_priv );
361+
352362 ret = umfProviderPostInitialize (& provider -> ops , provider_priv );
353363 if (ret != UMF_RESULT_SUCCESS && ret != UMF_RESULT_ERROR_INVALID_CTL_PATH ) {
354364 LOG_ERR ("Failed to post-initialize provider" );
@@ -358,13 +368,6 @@ umf_result_t umfMemoryProviderCreate(const umf_memory_provider_ops_t *ops,
358368
359369 * hProvider = provider ;
360370
361- const char * provider_name = NULL ;
362- if (provider -> ops .get_name (provider -> provider_priv , & provider_name ) ==
363- UMF_RESULT_SUCCESS &&
364- provider_name ) {
365- utils_warn_invalid_name ("Memory provider" , provider_name );
366- }
367-
368371 return UMF_RESULT_SUCCESS ;
369372}
370373
0 commit comments