fix memory leaks

if add_connection() fails, memory allocated in copy_command_context() is lost.

Signed-off-by: Sergey Borshch <sb-sf@users.sourceforge.net>
Change-Id: I91a2757f29612038031eb8953100faa3b850d3a6
Reviewed-on: http://openocd.zylin.com/836
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Sergey Borshch 2012-09-19 10:07:36 +03:00 committed by Spencer Oliver
parent 6663a788a5
commit fc302a0252
1 changed files with 3 additions and 0 deletions

View File

@ -85,6 +85,7 @@ static int add_connection(struct service *service, struct command_context *cmd_c
if (retval != ERROR_OK) {
close_socket(c->fd);
LOG_ERROR("attempted '%s' connection rejected", service->name);
command_done(c->cmd_ctx);
free(c);
return retval;
}
@ -104,6 +105,7 @@ static int add_connection(struct service *service, struct command_context *cmd_c
retval = service->new_connection(c);
if (retval != ERROR_OK) {
LOG_ERROR("attempted '%s' connection rejected", service->name);
command_done(c->cmd_ctx);
free(c);
return retval;
}
@ -124,6 +126,7 @@ static int add_connection(struct service *service, struct command_context *cmd_c
retval = service->new_connection(c);
if (retval != ERROR_OK) {
LOG_ERROR("attempted '%s' connection rejected", service->name);
command_done(c->cmd_ctx);
free(c);
return retval;
}