Merge pull request #8657 from Kelebek1/depop
[Audio] Avoid an out-of-bounds span write in depop prepare
This commit is contained in:
		@@ -339,7 +339,7 @@ void CommandBuffer::GenerateDepopPrepareCommand(const s32 node_id, const VoiceSt
 | 
			
		||||
    cmd.previous_samples = memory_pool->Translate(CpuAddr(voice_state.previous_samples.data()),
 | 
			
		||||
                                                  MaxMixBuffers * sizeof(s32));
 | 
			
		||||
    cmd.buffer_count = buffer_count;
 | 
			
		||||
    cmd.depop_buffer = memory_pool->Translate(CpuAddr(buffer.data()), buffer_count * sizeof(s32));
 | 
			
		||||
    cmd.depop_buffer = memory_pool->Translate(CpuAddr(buffer.data()), buffer.size_bytes());
 | 
			
		||||
 | 
			
		||||
    GenerateEnd<DepopPrepareCommand>(cmd);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ void DepopPrepareCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor
 | 
			
		||||
 | 
			
		||||
void DepopPrepareCommand::Process(const ADSP::CommandListProcessor& processor) {
 | 
			
		||||
    auto samples{reinterpret_cast<s32*>(previous_samples)};
 | 
			
		||||
    auto buffer{std::span(reinterpret_cast<s32*>(depop_buffer), buffer_count)};
 | 
			
		||||
    auto buffer{reinterpret_cast<s32*>(depop_buffer)};
 | 
			
		||||
 | 
			
		||||
    for (u32 i = 0; i < buffer_count; i++) {
 | 
			
		||||
        if (samples[i]) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user