aboutsummaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2011-11-01 22:00:46 +0100
committerSpencer Oliver <spen@spen-soft.co.uk>2011-11-01 21:20:19 +0000
commit06216744ed1bae8a92333c13ae9b1e270e4c0747 (patch)
tree4c98ea327e41184683563e057a09629bef8d77b1 /src/target
parent889a306fc8cb266462b630b19ebf8a319d07c9f0 (diff)
target: fix null pointer exception
check if no target is selected and return error. Change-Id: Ie8abb63c708d09572b45e88fc6766af108715077 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/148 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/target')
-rw-r--r--src/target/armv4_5.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c
index ef9b8397..e576d9c0 100644
--- a/src/target/armv4_5.c
+++ b/src/target/armv4_5.c
@@ -741,7 +741,13 @@ COMMAND_HANDLER(handle_arm_disassemble_command)
{
int retval = ERROR_OK;
struct target *target = get_current_target(CMD_CTX);
- struct arm *arm = target ? target_to_arm(target) : NULL;
+
+ if (target == NULL) {
+ LOG_ERROR("No target selected");
+ return ERROR_FAIL;
+ }
+
+ struct arm *arm = target_to_arm(target);
uint32_t address;
int count = 1;
int thumb = 0;
@@ -946,7 +952,13 @@ static int jim_mcrmrc(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
COMMAND_HANDLER(handle_arm_semihosting_command)
{
struct target *target = get_current_target(CMD_CTX);
- struct arm *arm = target ? target_to_arm(target) : NULL;
+
+ if (target == NULL) {
+ LOG_ERROR("No target selected");
+ return ERROR_FAIL;
+ }
+
+ struct arm *arm = target_to_arm(target);
if (!is_arm(arm)) {
command_print(CMD_CTX, "current target isn't an ARM");