@@ -884,13 +884,19 @@ size_t disjoint_pool_malloc_usable_size(void *pool, const void *ptr) {
884884 critnib_release (disjoint_pool -> known_slabs , ref_slab );
885885 }
886886
887- umf_alloc_info_t allocInfo = {NULL , 0 , NULL };
887+ umf_alloc_info_t allocInfo = {NULL };
888888 umf_result_t ret = umfMemoryTrackerGetAllocInfo (ptr , & allocInfo );
889889 if (ret != UMF_RESULT_SUCCESS ) {
890890 return 0 ;
891891 }
892892
893- return allocInfo .baseSize ;
893+ if (allocInfo .props == NULL ) {
894+ TLS_last_allocation_error = UMF_RESULT_ERROR_UNKNOWN ;
895+ LOG_ERR ("failed to get allocation info from the memory tracker" );
896+ return 0 ;
897+ }
898+
899+ return allocInfo .props -> base_size ;
894900 }
895901
896902 // Get the unaligned pointer
@@ -925,15 +931,21 @@ umf_result_t disjoint_pool_free(void *pool, void *ptr) {
925931 critnib_release (disjoint_pool -> known_slabs , ref_slab );
926932 }
927933
928- umf_alloc_info_t allocInfo = {NULL , 0 , NULL };
934+ umf_alloc_info_t allocInfo = {NULL };
929935 umf_result_t ret = umfMemoryTrackerGetAllocInfo (ptr , & allocInfo );
930936 if (ret != UMF_RESULT_SUCCESS ) {
931937 TLS_last_allocation_error = ret ;
932938 LOG_ERR ("failed to get allocation info from the memory tracker" );
933939 return ret ;
934940 }
935941
936- size_t size = allocInfo .baseSize ;
942+ if (allocInfo .props == NULL ) {
943+ TLS_last_allocation_error = UMF_RESULT_ERROR_UNKNOWN ;
944+ LOG_ERR ("failed to get allocation info from the memory tracker" );
945+ return UMF_RESULT_ERROR_UNKNOWN ;
946+ }
947+
948+ size_t size = allocInfo .props -> base_size ;
937949 umf_memory_provider_handle_t provider = disjoint_pool -> provider ;
938950 ret = umfMemoryProviderFree (provider , ptr , size );
939951 if (ret != UMF_RESULT_SUCCESS ) {
0 commit comments