diff options
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/gdb_server.c | 7 | ||||
-rw-r--r-- | src/server/server.c | 3 | ||||
-rw-r--r-- | src/server/telnet_server.c | 11 |
3 files changed, 20 insertions, 1 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 657338ea..cd7e327f 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -447,9 +447,14 @@ int gdb_connection_closed(connection_t *connection) delete_debug_msg_receiver(connection->cmd_ctx, gdb_service->target); if (connection->priv) + { free(connection->priv); + connection->priv = NULL; + } else + { ERROR("BUG: connection->priv == NULL"); + } target_unregister_event_callback(gdb_target_callback_event_handler, connection); @@ -1325,7 +1330,7 @@ int gdb_v_packet(connection_t *connection, target_t *target, char *packet, int p char *error_str; /* process the flashing buffer */ - if ((result = flash_write(gdb_service->target, gdb_connection->vflash_image, &written, &error_str, NULL, 0)) != ERROR_OK) + if ((result = flash_image_operation(gdb_service->target, gdb_connection->vflash_image, &written, &error_str, NULL, flash_image_op_write)) != ERROR_OK) { if (result == ERROR_FLASH_DST_OUT_OF_BANK) gdb_put_packet(connection, "E.memtype", 9); diff --git a/src/server/server.c b/src/server/server.c index 98b1fb1d..82f9f448 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -230,6 +230,8 @@ int remove_services() c = next; } + services = NULL; + return ERROR_OK; } @@ -454,3 +456,4 @@ int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char * return ERROR_COMMAND_CLOSE_CONNECTION; } + diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c index eeb2cc82..5353369a 100644 --- a/src/server/telnet_server.c +++ b/src/server/telnet_server.c @@ -506,21 +506,32 @@ int telnet_connection_closed(connection_t *connection) int i; if (t_con->prompt) + { free(t_con->prompt); + t_con->prompt = NULL; + } for (i = 0; i < TELNET_LINE_HISTORY_SIZE; i++) { if (t_con->history[i]) + { free(t_con->history[i]); + t_con->history[i] = NULL; + } } /* if this connection registered a debug-message receiver delete it */ delete_debug_msg_receiver(connection->cmd_ctx, NULL); if (connection->priv) + { free(connection->priv); + connection->priv = NULL; + } else + { ERROR("BUG: connection->priv == NULL"); + } target_unregister_event_callback(telnet_target_callback_event_handler, connection->cmd_ctx); |