From 57a3406522145037b01241f6e0d93055c70ff31f Mon Sep 17 00:00:00 2001 From: Tim Schubert Date: Mon, 29 Oct 2018 11:40:29 +0100 Subject: [PATCH] Fix: v6 socket. Free line at end --- netcalc.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/netcalc.c b/netcalc.c index 59847e6..7fb183e 100644 --- a/netcalc.c +++ b/netcalc.c @@ -270,7 +270,7 @@ int connectclient(struct addrinfo *ainfo) { int client() { char buf[BUFLEN]; size_t nullsize = 0; - char *line = NULL; + char *line = (char *) malloc(BUFLEN); while (getline(&line, &nullsize, stdin) != -1) { unsigned int num1; unsigned int num2; @@ -293,10 +293,6 @@ int client() { perror("send"); continue; } - - free(line); - line = NULL; // so getline allocates a buffer for us - memset(buf, 0, BUFLEN); ssize_t re_bytes_c = recv(SOCKFD, buf, sizeof buf, 0); if (re_bytes_c == -1) { @@ -305,6 +301,7 @@ int client() { } printf("%s", buf); } + free(line); return 0; } @@ -336,7 +333,7 @@ int main(int argc, char *argv[]) { return 0; } else { CLIENT = 0; - afamiliy = AF_UNSPEC; + afamiliy = AF_INET6; flags |= AI_PASSIVE; if (argc > 1) { port = argv[1];