Merge pull request #8657 from Kelebek1/depop
[Audio] Avoid an out-of-bounds span write in depop prepare
This commit is contained in:
commit
e5615c4704
|
@ -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