From 7dc5034ff2e8559c1cc6afedeb32d17583469d72 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Thu, 26 May 2016 11:56:24 +0100 Subject: 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 Reviewed-by: Curtis Dunham --- src/arch/arm/isa/templates/neon64.isa | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') 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(); + MemUnion memUnion { { } }; + memcpy(&memUnion, pkt->getPtr(), pkt->getSize()); if (fault == NoFault) { %(memacc_code)s; -- cgit v1.2.3