summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/gdb_server.c7
-rw-r--r--src/server/server.c3
-rw-r--r--src/server/telnet_server.c11
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);