target/cortex_a: check gdb_service before dereferencing in update_halt_gdb98/2098/2
authorPaul Fertser <fercerpav@gmail.com>
Mon, 7 Apr 2014 08:33:53 +0000 (7 12:33 +0400)
committerPaul Fertser <fercerpav@gmail.com>
Mon, 14 Apr 2014 18:12:30 +0000 (14 18:12 +0000)
If gdb was disconnected by the moment the target entered halted state,
update_halt_gdb would segfault.

Change-Id: I67477e9199c1df097be83a49e38602f975c083f5
Reported-by: Younes REGAIEG <younes.regaieg@imag.fr>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2098
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/cortex_a.c

index e95297c..50eb9d4 100644 (file)
@@ -766,7 +766,7 @@ static int cortex_a8_halt_smp(struct target *target)
 static int update_halt_gdb(struct target *target)
 {
        int retval = 0;
-       if (target->gdb_service->core[0] == -1) {
+       if (target->gdb_service && target->gdb_service->core[0] == -1) {
                target->gdb_service->target = target;
                target->gdb_service->core[0] = target->coreid;
                retval += cortex_a8_halt_smp(target);