* kcmd.c (kcmd_connect): Actually save errno value when preparing error text to
authorKen Raeburn <raeburn@mit.edu>
Wed, 13 Mar 2002 21:33:23 +0000 (21:33 +0000)
committerKen Raeburn <raeburn@mit.edu>
Wed, 13 Mar 2002 21:33:23 +0000 (21:33 +0000)
print.  Free address info before returning.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14271 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/bsd/ChangeLog
src/appl/bsd/kcmd.c

index 663b21ff711ec9dbd0d5fd2f04c9da139ef4dc3e..1dd1d6a9ef4837064796bef4a1d9c8820bfc997a 100644 (file)
@@ -1,7 +1,8 @@
 2002-03-13  Ken Raeburn  <raeburn@mit.edu>
 
        * kcmd.c (kcmd_connect): Don't call fixup_addrinfo, it's been
-       deleted.
+       deleted.  Actually save errno value when preparing error text to
+       print.  Free address info before returning.
 
 2002-03-08  Ken Raeburn  <raeburn@mit.edu>
 
index 709c60c36ce40a11442f4ec4813e8fc65192b0bb..402e6ccb9c549b5b60fa6c0b01a9317b652fd487 100644 (file)
@@ -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;
 }