diff options
| author | JMC47 <JMC4789@gmail.com> | 2021-04-23 14:07:46 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-23 14:07:46 -0400 |
| commit | cfc4af76a9d0b00df81239d9a83ba5ea1d381a1e (patch) | |
| tree | 0e1640a5792c970f4b6547f5f46ad689b48a8c8b /Source/Core/VideoBackends/Software/SWTexture.cpp | |
| parent | 4ab92d47574aa2388d39d6740ac85cc3324a15b8 (diff) | |
| parent | 058c7db80b074fa52aaa504329ee69cf25a516e3 (diff) | |
Merge pull request #9321 from Pokechu22/sw-copyregion
Software: Fix out of bounds accesses in CopyRegion
Diffstat (limited to 'Source/Core/VideoBackends/Software/SWTexture.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Software/SWTexture.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/Source/Core/VideoBackends/Software/SWTexture.cpp b/Source/Core/VideoBackends/Software/SWTexture.cpp index 466da1efd5..eda833c56f 100644 --- a/Source/Core/VideoBackends/Software/SWTexture.cpp +++ b/Source/Core/VideoBackends/Software/SWTexture.cpp @@ -56,15 +56,10 @@ void SWRenderer::ScaleTexture(AbstractFramebuffer* dst_framebuffer, const SWTexture* software_source_texture = static_cast<const SWTexture*>(src_texture); SWTexture* software_dest_texture = static_cast<SWTexture*>(dst_framebuffer->GetColorAttachment()); - std::vector<Pixel> source_pixels; - source_pixels.resize(src_rect.GetHeight() * src_rect.GetWidth() * 4); - memcpy(source_pixels.data(), software_source_texture->GetData(), source_pixels.size()); - - std::vector<Pixel> destination_pixels; - destination_pixels.resize(dst_rect.GetHeight() * dst_rect.GetWidth() * 4); - - CopyRegion(source_pixels.data(), src_rect, destination_pixels.data(), dst_rect); - memcpy(software_dest_texture->GetData(), destination_pixels.data(), destination_pixels.size()); + CopyRegion(reinterpret_cast<const Pixel*>(software_source_texture->GetData()), src_rect, + src_texture->GetWidth(), src_texture->GetHeight(), + reinterpret_cast<Pixel*>(software_dest_texture->GetData()), dst_rect, + dst_framebuffer->GetWidth(), dst_framebuffer->GetHeight()); } SWTexture::SWTexture(const TextureConfig& tex_config) : AbstractTexture(tex_config) |
