rtos: Don't crash on qSymbol GDB packet when no RTOS is configured
authorMatthias Blaicher <matthias@blaicher.com>
Tue, 9 Oct 2012 08:25:00 +0000 (10:25 +0200)
committerPeter Stuge <peter@stuge.se>
Tue, 9 Oct 2012 10:23:51 +0000 (10:23 +0000)
Commit 43902905bbc8fdc9d764f3843d697161d9b5fd92 fixed a bug but also
introduced a regression. The RTOS GDB packet handler is always called,
not only when an RTOS is actually configured, so it is important to
check if an RTOS has been configured or not before actually processing
the qSymbol packet.

Change-Id: I1aed54f6c2817e1ebf99ddcda051df4554ea5a3a
Signed-off-by: Peter Stuge <peter@stuge.se>
Reviewed-on: http://openocd.zylin.com/907
Tested-by: jenkins
src/rtos/rtos.c

index 9002f1a8cfe64960785063465453d90f4eb12630..ed559c391b2f86b65e82913b72713dae8fd1bff2 100644 (file)
@@ -194,6 +194,9 @@ int rtos_qsymbol(struct connection *connection, char *packet, int packet_size)
 
        reply_len = sprintf(reply, "OK");
 
+       if (!os)
+               goto done;
+
        if (sscanf(packet, "qSymbol:%" SCNx64 ":", &addr))
                hex_to_str(cur_sym, strchr(packet + 8, ':') + 1);
        else if (target->rtos_auto_detect && !rtos_try_next(target))