summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimur Mustafin/Platform Lab /SRR/Engineer/Samsung Electronics <t.mustafin@partner.samsung.com>2020-08-10 12:40:39 +0300
committer이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>2020-08-10 18:40:39 +0900
commitdc5ea62a519533d193194025ad31135262acf0e9 (patch)
tree3a5e09a71b007c33c41c0d00e24171d05bcf434c
parentdbfc7071dd4aa23481e1932ed3b006101709880c (diff)
downloadcoreclr-dc5ea62a519533d193194025ad31135262acf0e9.tar.gz
coreclr-dc5ea62a519533d193194025ad31135262acf0e9.tar.bz2
coreclr-dc5ea62a519533d193194025ad31135262acf0e9.zip
Fix buffer overrun in JIT for Vector256<T> types on ARM64. (#35864) (#308)submit/tizen/20200811.004222accepted/tizen/unified/20200811.050456
Stop recognizing Vector256<T> types as intrinsic for ARM64 in Crossgen2. Signed-off-by: Timur <t-mustafin@partner.samsung.com>
-rw-r--r--src/jit/compiler.h4
-rw-r--r--src/vm/class.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/jit/compiler.h b/src/jit/compiler.h
index 90aec385b6..253d96a5ac 100644
--- a/src/jit/compiler.h
+++ b/src/jit/compiler.h
@@ -1619,6 +1619,10 @@ public:
#else
unsigned int regSize = 1;
#endif
+
+ if (numRegs > MAX_ARG_REG_COUNT)
+ NO_WAY("Multireg argument exceeds the maximum length");
+
for (unsigned int regIndex = 1; regIndex < numRegs; regIndex++)
{
argReg = (regNumber)(argReg + regSize);
diff --git a/src/vm/class.cpp b/src/vm/class.cpp
index a24f213c35..feafc29542 100644
--- a/src/vm/class.cpp
+++ b/src/vm/class.cpp
@@ -1201,10 +1201,6 @@ int MethodTable::GetVectorSize()
{
vectorSize = 16;
}
- else if (strcmp(className, "Vector256`1") == 0)
- {
- vectorSize = 32;
- }
else if (strcmp(className, "Vector64`1") == 0)
{
vectorSize = 8;