mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-22 08:14:04 +02:00
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:
+3
-2
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user