From 4e3c2676f15a130d0594b7c5164ae09f8bd41648 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=98yvind=20Harboe?= <oyvind.harboe@zylin.com>
Date: Mon, 26 Oct 2009 18:53:19 +0100
Subject: [PATCH] target: check args to mrc/mcr.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
---
 src/target/target.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/target/target.c b/src/target/target.c
index d4662f711..9b07df18b 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -722,6 +722,30 @@ static int arm_cp_check(struct target_s *target, int cpnum, uint32_t op1, uint32
 		return ERROR_FAIL;
 	}
 
+	if (op1>7)
+	{
+		LOG_ERROR("Illegal op1");
+		return ERROR_FAIL;
+	}
+
+	if (op2>7)
+	{
+		LOG_ERROR("Illegal op2");
+		return ERROR_FAIL;
+	}
+
+	if (CRn>15)
+	{
+		LOG_ERROR("Illegal CRn");
+		return ERROR_FAIL;
+	}
+
+	if (CRm>7)
+	{
+		LOG_ERROR("Illegal CRm");
+		return ERROR_FAIL;
+	}
+
 	return ERROR_OK;
 }
 
-- 
GitLab