Fix a possible crash in the resource manager.

This code was prematurely freeing a data buffer node which was resulting
in a dereference of an invalid pointer.
This commit is contained in:
David Reid
2025-09-27 12:34:21 +10:00
parent 669ed3e844
commit 2db0984566
+3 -2
View File
@@ -72934,8 +72934,6 @@ static ma_result ma_job_process__resource_manager__free_data_buffer_node(ma_job*
return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */
}
ma_resource_manager_data_buffer_node_free(pResourceManager, pDataBufferNode);
/* The event needs to be signalled last. */
if (pJob->data.resourceManager.freeDataBufferNode.pDoneNotification != NULL) {
ma_async_notification_signal(pJob->data.resourceManager.freeDataBufferNode.pDoneNotification);
@@ -72946,6 +72944,9 @@ static ma_result ma_job_process__resource_manager__free_data_buffer_node(ma_job*
}
ma_atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1);
ma_resource_manager_data_buffer_node_free(pResourceManager, pDataBufferNode);
return MA_SUCCESS;
}