From 0104649760d442a95d350b30922f02dec4081ba7 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sat, 23 Sep 2017 11:11:27 +0200 Subject: ocsptool: eliminate memory leaks Signed-off-by: Nikos Mavrogiannopoulos --- src/ocsptool-common.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/ocsptool-common.c b/src/ocsptool-common.c index fdbd662c31..a2d971b4b0 100644 --- a/src/ocsptool-common.c +++ b/src/ocsptool-common.c @@ -219,7 +219,8 @@ int send_ocsp_request(const char *server, if (ret < 0 || ud.size == 0) { perror("recv"); - return -1; + ret = -1; + goto cleanup; } socket_bye(&hd, 0); @@ -227,22 +228,29 @@ int send_ocsp_request(const char *server, p = memmem(ud.data, ud.size, "\r\n\r\n", 4); if (p == NULL) { fprintf(stderr, "Cannot interpret HTTP response\n"); - return -1; + ret = -1; + goto cleanup; } p += 4; resp_data->size = ud.size - (p - ud.data); resp_data->data = malloc(resp_data->size); - if (resp_data->data == NULL) - return -1; + if (resp_data->data == NULL) { + perror("recv"); + ret = -1; + goto cleanup; + } memcpy(resp_data->data, p, resp_data->size); + ret = 0; + + cleanup: free(ud.data); if (url != server) free(url); - return 0; + return ret; } void print_ocsp_verify_res(unsigned int output) -- cgit v1.2.1