From 05d143857ccadfa2ab3a9bf11461482f8e3a53b7 Mon Sep 17 00:00:00 2001 From: oharboe Date: Mon, 19 May 2008 19:02:36 +0000 Subject: Fix crash when mode number fetched from the target is invalid. git-svn-id: svn://svn.berlios.de/openocd/trunk@667 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/target/armv4_5.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/target/armv4_5.c') diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c index 264a4437..e546e404 100644 --- a/src/target/armv4_5.c +++ b/src/target/armv4_5.c @@ -329,6 +329,9 @@ int handle_armv4_5_reg_command(struct command_context_s *cmd_ctx, char *cmd, cha return ERROR_OK; } + if (armv4_5_mode_to_number(armv4_5->core_mode)==-1) + return ERROR_FAIL; + for (num = 0; num <= 15; num++) { output_len = 0; @@ -441,6 +444,9 @@ int armv4_5_get_gdb_reg_list(target_t *target, reg_t **reg_list[], int *reg_list armv4_5_common_t *armv4_5 = target->arch_info; int i; + if (armv4_5_mode_to_number(armv4_5->core_mode)==-1) + return ERROR_FAIL; + *reg_list_size = 26; *reg_list = malloc(sizeof(reg_t*) * (*reg_list_size)); @@ -485,6 +491,9 @@ int armv4_5_run_algorithm(struct target_s *target, int num_mem_params, mem_param return ERROR_TARGET_NOT_HALTED; } + if (armv4_5_mode_to_number(armv4_5->core_mode)==-1) + return ERROR_FAIL; + for (i = 0; i <= 16; i++) { if (!ARMV4_5_CORE_REG_MODE(armv4_5->core_cache, armv4_5_algorithm_info->core_mode, i).valid) -- cgit v1.2.3