@@ -295,6 +295,25 @@ static umf_result_t file_initialize(const void *params, void **provider) {
295295
296296 file_provider -> coarse = coarse ;
297297
298+ * provider = file_provider ;
299+ return UMF_RESULT_SUCCESS ;
300+
301+ err_close_fd :
302+ utils_close_fd (file_provider -> fd );
303+ err_free_file_provider :
304+ umf_ba_global_free (file_provider );
305+ return ret ;
306+ }
307+
308+ static umf_result_t file_post_initialize (void * provider ) {
309+ umf_result_t ret = UMF_RESULT_SUCCESS ;
310+ file_memory_provider_t * file_provider = provider ;
311+
312+ if (file_provider == NULL ) {
313+ LOG_ERR ("file provider is NULL" );
314+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
315+ }
316+
298317 if (utils_mutex_init (& file_provider -> lock ) == NULL ) {
299318 LOG_ERR ("lock init failed" );
300319 ret = UMF_RESULT_ERROR_UNKNOWN ;
@@ -315,20 +334,14 @@ static umf_result_t file_initialize(const void *params, void **provider) {
315334 goto err_delete_fd_offset_map ;
316335 }
317336
318- * provider = file_provider ;
319-
320337 return UMF_RESULT_SUCCESS ;
321338
322- err_delete_fd_offset_map :
323- critnib_delete (file_provider -> fd_offset_map );
324- err_mutex_destroy_not_free :
325- utils_mutex_destroy_not_free (& file_provider -> lock );
326339err_coarse_delete :
327340 coarse_delete (file_provider -> coarse );
328- err_close_fd :
329- utils_close_fd ( file_provider -> fd );
330- err_free_file_provider :
331- umf_ba_global_free (file_provider );
341+ err_mutex_destroy_not_free :
342+ utils_mutex_destroy_not_free ( & file_provider -> lock );
343+ err_delete_fd_offset_map :
344+ critnib_delete (file_provider -> fd_offset_map );
332345 return ret ;
333346}
334347
@@ -916,12 +929,6 @@ static umf_result_t file_free(void *provider, void *ptr, size_t size) {
916929 return ret ;
917930}
918931
919- static umf_result_t file_post_initialize (void * provider ) {
920- (void )provider ;
921- // For initial version, just return success
922- return UMF_RESULT_SUCCESS ;
923- }
924-
925932static umf_memory_provider_ops_t UMF_FILE_MEMORY_PROVIDER_OPS = {
926933 .version = UMF_PROVIDER_OPS_VERSION_CURRENT ,
927934 .initialize = file_initialize ,
0 commit comments