summaryrefslogtreecommitdiffstats
path: root/src/appl/bsd/kcmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/appl/bsd/kcmd.c')
-rw-r--r--src/appl/bsd/kcmd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/appl/bsd/kcmd.c b/src/appl/bsd/kcmd.c
index 709c60c36c..402e6ccb9c 100644
--- a/src/appl/bsd/kcmd.c
+++ b/src/appl/bsd/kcmd.c
@@ -229,6 +229,7 @@ kcmd_connect (int *sp, int *addrfamilyp, struct sockaddr_in *sockinp,
*host_save = malloc(strlen(ap->ai_canonname) + 1);
if (*host_save == NULL) {
fprintf(stderr, "kcmd: no memory\n");
+ freeaddrinfo(ap);
return -1;
}
strcpy(*host_save, ap->ai_canonname);
@@ -256,6 +257,7 @@ kcmd_connect (int *sp, int *addrfamilyp, struct sockaddr_in *sockinp,
(*lportp)--;
}
+ oerrno = errno;
aierr = getnameinfo(ap->ai_addr, ap->ai_addrlen,
hostbuf, sizeof(hostbuf), 0, 0, NI_NUMERICHOST);
if (aierr)
@@ -269,6 +271,7 @@ kcmd_connect (int *sp, int *addrfamilyp, struct sockaddr_in *sockinp,
if (ap->ai_next)
fprintf(stderr, "Trying next address...\n");
}
+ freeaddrinfo(ap2);
return -1;
connected:
@@ -281,6 +284,7 @@ connected:
*sp = s;
*sockinp = *(struct sockaddr_in *) ap->ai_addr;
+ freeaddrinfo(ap2);
return 0;
}