gethostbyname() may return a pointer to static data, which is
authorCharles Hannum <mycroft@gnu.org>
Thu, 21 Nov 1996 20:47:59 +0000 (20:47 +0000)
committerCharles Hannum <mycroft@gnu.org>
Thu, 21 Nov 1996 20:47:59 +0000 (20:47 +0000)
overwritten deep inside krb_realmofhost().  Copy the host name to
avoid conflicts.

lib-src/pop.c

index 5657df5..c4d4c26 100644 (file)
@@ -1005,6 +1005,7 @@ socket_connection (host, flags)
   CREDENTIALS cred;
   Key_schedule schedule;
   int rem;
+  char *realhost;
 #endif /* KRB5 */
 #endif /* KERBEROS */
 
@@ -1175,8 +1176,9 @@ socket_connection (host, flags)
        }
 #else  /* ! KRB5 */      
       ticket = (KTEXT) malloc (sizeof (KTEXT_ST));
-      rem = krb_sendauth (0L, sock, ticket, "pop", hostent->h_name,
-                         (char *) krb_realmofhost (hostent->h_name),
+      realhost = strdup (hostent->h_name);
+      rem = krb_sendauth (0L, sock, ticket, "pop", realhost,
+                         (char *) krb_realmofhost (realhost),
                          (unsigned long) 0, &msg_data, &cred, schedule,
                          (struct sockaddr_in *) 0,
                          (struct sockaddr_in *) 0,