diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2016-05-26 11:56:24 +0100 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2016-05-26 11:56:24 +0100 |
commit | 7dc5034ff2e8559c1cc6afedeb32d17583469d72 (patch) | |
tree | a7f999790a9b2af19b37f6628a14b5f066e0fb7e /src | |
parent | 4a3e2156acb1a6152f78d2d9d92d0aece453ead9 (diff) | |
download | gem5-7dc5034ff2e8559c1cc6afedeb32d17583469d72.tar.xz |
arm: Fix heap overflow issue in Neon64Load operation
This patch fixes an issue identified by ASAN where the Neon64Load
operation assumes the packet always contains 16 bytes.
Change-Id: If24a7e461d60cb80970dfbe61d923d7d56926698
Reviewed-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/arm/isa/templates/neon64.isa | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch/arm/isa/templates/neon64.isa b/src/arch/arm/isa/templates/neon64.isa index 6356073c5..336187fd8 100644 --- a/src/arch/arm/isa/templates/neon64.isa +++ b/src/arch/arm/isa/templates/neon64.isa @@ -332,7 +332,8 @@ def template NeonLoadCompleteAcc64 {{ %(op_decl)s; %(op_rd)s; - MemUnion &memUnion = *(MemUnion *)pkt->getPtr<uint8_t>(); + MemUnion memUnion { { } }; + memcpy(&memUnion, pkt->getPtr<uint8_t>(), pkt->getSize()); if (fault == NoFault) { %(memacc_code)s; |