target: fix registers reading from non examined target
If a target is not examined when the debugger tries to connect to it then it can lead to undesired/undefined behavior. In particular it leads to a zero pointer dereference on the aarch64. Change-Id: I67f2b714ab8b2727fd36f3de16d7f9017b4c55fe Signed-off-by: Mikhail Rasputin <mikhail.godlike.rasputin@yandex.ru> Reviewed-on: http://openocd.zylin.com/5727 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
86777768eb
commit
6d45e485f9
|
@ -1224,8 +1224,17 @@ int target_get_gdb_reg_list(struct target *target,
|
|||
struct reg **reg_list[], int *reg_list_size,
|
||||
enum target_register_class reg_class)
|
||||
{
|
||||
int result = target->type->get_gdb_reg_list(target, reg_list,
|
||||
int result = ERROR_FAIL;
|
||||
|
||||
if (!target_was_examined(target)) {
|
||||
LOG_ERROR("Target not examined yet");
|
||||
goto done;
|
||||
}
|
||||
|
||||
result = target->type->get_gdb_reg_list(target, reg_list,
|
||||
reg_list_size, reg_class);
|
||||
|
||||
done:
|
||||
if (result != ERROR_OK) {
|
||||
*reg_list = NULL;
|
||||
*reg_list_size = 0;
|
||||
|
|
Loading…
Reference in New Issue