diff options
author | Lioncash <mathew1800@gmail.com> | 2022-10-21 00:05:39 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2022-10-21 00:09:22 -0400 |
commit | 0b181eeef4f56a814ea6c9b86d789be3ab8d1ae5 (patch) | |
tree | 1b64af71db6e0d5a834aba820a7507c90249efb5 /src | |
parent | 6b71530fa8d3ce811537110a42dc8cd554629fb2 (diff) |
hid/npad: Fix copy size in GetSupportedNpadIdTypes
Previously this was passing the size of the vector into memcpy rather
than the size in bytes to copy, which would result in a partial read.
Thankfully, this function isn't used yet, so this gets rid of a bug
before it's able to do anything.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 98e4f2af7f..ba8a1f7866 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp @@ -745,8 +745,9 @@ void Controller_NPad::SetSupportedNpadIdTypes(u8* data, std::size_t length) { } void Controller_NPad::GetSupportedNpadIdTypes(u32* data, std::size_t max_length) { - ASSERT(max_length < supported_npad_id_types.size()); - std::memcpy(data, supported_npad_id_types.data(), supported_npad_id_types.size()); + const auto copy_amount = supported_npad_id_types.size() * sizeof(u32); + ASSERT(max_length <= copy_amount); + std::memcpy(data, supported_npad_id_types.data(), copy_amount); } std::size_t Controller_NPad::GetSupportedNpadIdTypesSize() const { |