From e2a05b97131f082303be1531fc43183acf01eb65 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sat, 23 Sep 2017 10:47:15 +0200 Subject: gnutls-cli: eliminate few memory leaks Signed-off-by: Nikos Mavrogiannopoulos --- src/cli.c | 13 +++++++++---- src/socket.c | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/cli.c b/src/cli.c index b2db7bc101..7207618bf4 100644 --- a/src/cli.c +++ b/src/cli.c @@ -1138,8 +1138,10 @@ int main(int argc, char **argv) printf("- Handshake was completed\n"); if (resume != 0) - if (try_resume(&hd)) - return 1; + if (try_resume(&hd)) { + retval = 1; + goto cleanup; + } print_other_info(hd.session); } @@ -1149,8 +1151,10 @@ int main(int argc, char **argv) printf("\n- Simple Client Mode:\n\n"); if (rehandshake) - if (try_rehandshake(&hd)) - return 1; + if (try_rehandshake(&hd)) { + retval = 1; + goto cleanup; + } #ifndef _WIN32 new_action.sa_handler = starttls_alarm; @@ -1319,6 +1323,7 @@ int main(int argc, char **argv) } } + cleanup: if (user_term != 0) socket_bye(&hd, 1); else diff --git a/src/socket.c b/src/socket.c index 4d90f2f5f5..bfdd78db89 100644 --- a/src/socket.c +++ b/src/socket.c @@ -613,6 +613,7 @@ socket_open2(socket_st * hd, const char *hostname, const char *service, hd->service = strdup(portname); hd->ptr = ptr; hd->addr_info = res; + gnutls_free(hd->rdata.data); hd->rdata.data = NULL; gnutls_free(idna.data); return; -- cgit v1.2.1