Signed-off-by: Qiumiao Zhang <zhangqiumiao1@xxxxxxxxxx> --- src/apps/sctp_status.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/apps/sctp_status.c b/src/apps/sctp_status.c index 7c18ab1..5a52165 100644 --- a/src/apps/sctp_status.c +++ b/src/apps/sctp_status.c @@ -266,6 +266,7 @@ int main(int argc, char *argv[]) { } if ((serv_s = malloc(NI_MAXSERV)) == NULL) { fprintf(stderr, "\n*** serv_s malloc failed!!! ***\n"); + free(host_s); exit(1); } @@ -273,6 +274,8 @@ int main(int argc, char *argv[]) { if (error) { printf("%s.\n", gai_strerror(error)); usage(argv[0]); + free(host_s); + free(serv_s); exit(1); } @@ -315,6 +318,8 @@ int main(int argc, char *argv[]) { host_s, serv_s, res->ai_family); freeaddrinfo(res); + free(host_s); + free(serv_s); } if (local_host != NULL) { @@ -330,6 +335,7 @@ int main(int argc, char *argv[]) { } if ((serv_s = malloc(NI_MAXSERV)) == NULL) { fprintf(stderr, "\n*** serv_s malloc failed!!! ***\n"); + free(host_s); exit(1); } @@ -340,6 +346,8 @@ int main(int argc, char *argv[]) { if (error) { printf("%s.\n", gai_strerror(error)); usage(argv[0]); + free(host_s); + free(serv_s); exit(1); } @@ -385,6 +393,8 @@ int main(int argc, char *argv[]) { host_s, serv_s, res->ai_family); freeaddrinfo(res); + free(host_s); + free(serv_s); } /* Let the testing begin. */ @@ -403,6 +413,7 @@ int bind_r(int sk, struct sockaddr_storage *saddr) { } if ((serv_s = malloc(NI_MAXSERV)) == NULL) { fprintf(stderr, "\n\t\t*** serv_s malloc failed!!! ***\n"); + free(host_s); exit(1); } @@ -427,6 +438,8 @@ int bind_r(int sk, struct sockaddr_storage *saddr) { fprintf(stderr, "\n\n\t\t***bind: can " "not bind to %s:%s: %s ****\n", host_s, serv_s, strerror(errno)); + free(host_s); + free(serv_s); exit(1); } } @@ -434,6 +447,8 @@ int bind_r(int sk, struct sockaddr_storage *saddr) { if (i >= MAX_BIND_RETRYS) { fprintf(stderr, "Maximum bind() attempts. " "Die now...\n\n"); + free(host_s); + free(serv_s); exit(1); } } while (error < 0 && i < MAX_BIND_RETRYS); -- 2.27.0