ARM7_9: Fix segfaults
Handlers for commands - arm7_9 semihosting <enable | disable> - $_TARGETNAME arp_reset assert 1 didn't check if target has already been examined, and could segfault when using the NULL pointer "arm7_9->eice_cache". Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
This commit is contained in:
parent
7c5acf8660
commit
3ed254c18a
|
@ -2797,6 +2797,12 @@ COMMAND_HANDLER(handle_arm7_9_semihosting_command)
|
|||
|
||||
COMMAND_PARSE_ENABLE(CMD_ARGV[0], semihosting);
|
||||
|
||||
if (!target_was_examined(target))
|
||||
{
|
||||
LOG_ERROR("Target not examined yet");
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
if (arm7_9->has_vector_catch) {
|
||||
struct reg *vector_catch = &arm7_9->eice_cache
|
||||
->reg_list[EICE_VEC_CATCH];
|
||||
|
|
|
@ -4079,6 +4079,11 @@ static int jim_target_reset(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
|||
struct target *target = Jim_CmdPrivData(goi.interp);
|
||||
if (!target->tap->enabled)
|
||||
return jim_target_tap_disabled(interp);
|
||||
if (!(target_was_examined(target)))
|
||||
{
|
||||
LOG_ERROR("Target not examined yet");
|
||||
return ERROR_TARGET_NOT_EXAMINED;
|
||||
}
|
||||
if (!target->type->assert_reset || !target->type->deassert_reset)
|
||||
{
|
||||
Jim_SetResult_sprintf(interp,
|
||||
|
|
Loading…
Reference in New Issue