diff options
| author | 2022-07-28 11:02:41 -0400 | |
|---|---|---|
| committer | 2022-07-28 11:02:41 -0400 | |
| commit | e5615c4704b9c39b140f4985bd0fa2ffc772125e (patch) | |
| tree | 3e10c98c5ea1b31e3fb4828f9f7f7703b09b085c | |
| parent | Merge pull request #8642 from lat9nq/appimg-more-control (diff) | |
| parent | Avoid depop out of bounds (diff) | |
| download | yuzu-e5615c4704b9c39b140f4985bd0fa2ffc772125e.tar.gz yuzu-e5615c4704b9c39b140f4985bd0fa2ffc772125e.tar.xz yuzu-e5615c4704b9c39b140f4985bd0fa2ffc772125e.zip | |
Merge pull request #8657 from Kelebek1/depop
[Audio] Avoid an out-of-bounds span write in depop prepare
Diffstat (limited to '')
| -rw-r--r-- | src/audio_core/renderer/command/command_buffer.cpp | 2 | ||||
| -rw-r--r-- | src/audio_core/renderer/command/mix/depop_prepare.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/audio_core/renderer/command/command_buffer.cpp b/src/audio_core/renderer/command/command_buffer.cpp index 40074cf14..2ef879ee1 100644 --- a/src/audio_core/renderer/command/command_buffer.cpp +++ b/src/audio_core/renderer/command/command_buffer.cpp | |||
| @@ -339,7 +339,7 @@ void CommandBuffer::GenerateDepopPrepareCommand(const s32 node_id, const VoiceSt | |||
| 339 | cmd.previous_samples = memory_pool->Translate(CpuAddr(voice_state.previous_samples.data()), | 339 | cmd.previous_samples = memory_pool->Translate(CpuAddr(voice_state.previous_samples.data()), |
| 340 | MaxMixBuffers * sizeof(s32)); | 340 | MaxMixBuffers * sizeof(s32)); |
| 341 | cmd.buffer_count = buffer_count; | 341 | cmd.buffer_count = buffer_count; |
| 342 | cmd.depop_buffer = memory_pool->Translate(CpuAddr(buffer.data()), buffer_count * sizeof(s32)); | 342 | cmd.depop_buffer = memory_pool->Translate(CpuAddr(buffer.data()), buffer.size_bytes()); |
| 343 | 343 | ||
| 344 | GenerateEnd<DepopPrepareCommand>(cmd); | 344 | GenerateEnd<DepopPrepareCommand>(cmd); |
| 345 | } | 345 | } |
diff --git a/src/audio_core/renderer/command/mix/depop_prepare.cpp b/src/audio_core/renderer/command/mix/depop_prepare.cpp index 2ee076ef6..69bb78ccc 100644 --- a/src/audio_core/renderer/command/mix/depop_prepare.cpp +++ b/src/audio_core/renderer/command/mix/depop_prepare.cpp | |||
| @@ -19,7 +19,7 @@ void DepopPrepareCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor | |||
| 19 | 19 | ||
| 20 | void DepopPrepareCommand::Process(const ADSP::CommandListProcessor& processor) { | 20 | void DepopPrepareCommand::Process(const ADSP::CommandListProcessor& processor) { |
| 21 | auto samples{reinterpret_cast<s32*>(previous_samples)}; | 21 | auto samples{reinterpret_cast<s32*>(previous_samples)}; |
| 22 | auto buffer{std::span(reinterpret_cast<s32*>(depop_buffer), buffer_count)}; | 22 | auto buffer{reinterpret_cast<s32*>(depop_buffer)}; |
| 23 | 23 | ||
| 24 | for (u32 i = 0; i < buffer_count; i++) { | 24 | for (u32 i = 0; i < buffer_count; i++) { |
| 25 | if (samples[i]) { | 25 | if (samples[i]) { |