From: Austin Morton Date: Sat, 2 May 2015 22:00:37 +0000 (-0400) Subject: server: avoid the tcl server crashing when there is no target X-Git-Tag: v0.9.0~6 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=38cb629ddf2711f351bbec9d8cc60615dc654a56 server: avoid the tcl server crashing when there is no target Since commit 1d0cf0df37a4e831ca3121ba8987d5848cad3e42 ("server: tcl_notifications command") connecting to the tcl server would terminate openocd. Fix this. Change-Id: I36e2a7482f7db3a30ff7e9f969c3b6cda9599382 Signed-off-by: Austin Morton Reviewed-on: http://openocd.zylin.com/2759 Tested-by: jenkins Reviewed-by: Forest Crossman Reviewed-by: Paul Fertser --- diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c index d6828f12aa..65f71cc988 100644 --- a/src/server/tcl_server.c +++ b/src/server/tcl_server.c @@ -123,7 +123,7 @@ static int tcl_new_connection(struct connection *connection) memset(tclc, 0, sizeof(struct tcl_connection)); connection->priv = tclc; - struct target *target = get_current_target(connection->cmd_ctx); + struct target *target = get_target_by_num(connection->cmd_ctx->current_target); if (target != NULL) tclc->tc_laststate = target->state; diff --git a/src/target/target.c b/src/target/target.c index 27f8839fb4..4ea445fe93 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -486,7 +486,7 @@ struct target *get_target(const char *id) } /* returns a pointer to the n-th configured target */ -static struct target *get_target_by_num(int num) +struct target *get_target_by_num(int num) { struct target *target = all_targets; diff --git a/src/target/target.h b/src/target/target.h index 9382720b96..7471c1b330 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -356,6 +356,7 @@ int target_call_timer_callbacks(void); */ int target_call_timer_callbacks_now(void); +struct target *get_target_by_num(int num); struct target *get_current_target(struct command_context *cmd_ctx); struct target *get_target(const char *id);