summaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2009-10-26 18:53:19 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2009-11-05 23:57:49 +0100
commit4e3c2676f15a130d0594b7c5164ae09f8bd41648 (patch)
tree2c9d0a365ac1ea98651834c55c2e4719eb1b7a4f /src/target
parent4441c1ffdcc30a3c51a6d407a2f178a1b3fba28a (diff)
downloadopenocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.tar.gz
openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.tar.bz2
openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.tar.xz
openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.zip
target: check args to mrc/mcr.
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/target')
-rw-r--r--src/target/target.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/target/target.c b/src/target/target.c
index d4662f71..9b07df18 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;
}