@@ -147,10 +147,6 @@ static umf_result_t trackingAlloc(void *hProvider, size_t size,
147
147
(umf_tracking_memory_provider_t * )hProvider ;
148
148
umf_result_t ret = UMF_RESULT_SUCCESS ;
149
149
150
- if (!p -> hUpstream ) {
151
- return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
152
- }
153
-
154
150
ret = umfMemoryProviderAlloc (p -> hUpstream , size , alignment , ptr );
155
151
if (ret != UMF_RESULT_SUCCESS || !* ptr ) {
156
152
return ret ;
@@ -372,6 +368,11 @@ static umf_result_t trackingInitialize(void *params, void **ret) {
372
368
}
373
369
374
370
* provider = * ((umf_tracking_memory_provider_t * )params );
371
+ if (provider -> hUpstream == NULL || provider -> hTracker == NULL ||
372
+ provider -> pool == NULL || provider -> ipcCache == NULL ) {
373
+ return UMF_RESULT_ERROR_INVALID_ARGUMENT ;
374
+ }
375
+
375
376
* ret = provider ;
376
377
return UMF_RESULT_SUCCESS ;
377
378
}
@@ -586,13 +587,15 @@ static umf_result_t trackingOpenIpcHandle(void *provider, void *providerIpcData,
586
587
(umf_tracking_memory_provider_t * )provider ;
587
588
umf_result_t ret = UMF_RESULT_SUCCESS ;
588
589
590
+ assert (p -> hUpstream );
591
+
589
592
ret = umfMemoryProviderOpenIPCHandle (p -> hUpstream , providerIpcData , ptr );
590
593
if (ret != UMF_RESULT_SUCCESS ) {
591
594
return ret ;
592
595
}
593
596
size_t bufferSize = getDataSizeFromIpcHandle (providerIpcData );
594
597
ret = umfMemoryTrackerAdd (p -> hTracker , p -> pool , * ptr , bufferSize );
595
- if (ret != UMF_RESULT_SUCCESS && p -> hUpstream ) {
598
+ if (ret != UMF_RESULT_SUCCESS ) {
596
599
if (umfMemoryProviderCloseIPCHandle (p -> hUpstream , * ptr )) {
597
600
// TODO: LOG
598
601
}
0 commit comments