diff options
author | Marc Schink <openocd-dev@marcschink.de> | 2016-01-24 20:58:24 +0100 |
---|---|---|
committer | Freddie Chopin <freddie.chopin@gmail.com> | 2017-04-25 16:56:35 +0100 |
commit | b43b95e46022d3baf76b44f7be34bbf0e6119594 (patch) | |
tree | f74666366f054f8ae4d6f45da4602c65111627e0 /src/server/telnet_server.c | |
parent | 99db18a995c8ef2913f1397dcc94d0533331e598 (diff) | |
download | riscv-openocd-b43b95e46022d3baf76b44f7be34bbf0e6119594.zip riscv-openocd-b43b95e46022d3baf76b44f7be34bbf0e6119594.tar.gz riscv-openocd-b43b95e46022d3baf76b44f7be34bbf0e6119594.tar.bz2 |
server/server: Remove all exit() calls
With this patch OpenOCD shuts down properly when errors occur in the
server instead of just calling exit().
Change-Id: I2ae1a6153dafc88667951cab9152941cb487be85
Signed-off-by: Marc Schink <openocd-dev@marcschink.de>
Reviewed-on: http://openocd.zylin.com/3223
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Tested-by: jenkins
Diffstat (limited to 'src/server/telnet_server.c')
-rw-r--r-- | src/server/telnet_server.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c index 0f5769a..e5eb4bb 100644 --- a/src/server/telnet_server.c +++ b/src/server/telnet_server.c @@ -624,9 +624,8 @@ int telnet_init(char *banner) return ERROR_OK; } - struct telnet_service *telnet_service; - - telnet_service = malloc(sizeof(struct telnet_service)); + struct telnet_service *telnet_service = + malloc(sizeof(struct telnet_service)); if (!telnet_service) { LOG_ERROR("Failed to allocate telnet service."); @@ -635,13 +634,16 @@ int telnet_init(char *banner) telnet_service->banner = banner; - return add_service("telnet", - telnet_port, - CONNECTION_LIMIT_UNLIMITED, - telnet_new_connection, - telnet_input, - telnet_connection_closed, + int ret = add_service("telnet", telnet_port, CONNECTION_LIMIT_UNLIMITED, + telnet_new_connection, telnet_input, telnet_connection_closed, telnet_service); + + if (ret != ERROR_OK) { + free(telnet_service); + return ret; + } + + return ERROR_OK; } /* daemon configuration command telnet_port */ |