aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src
diff options
context:
space:
mode:
authorCharles Hannum1996-11-21 20:47:59 +0000
committerCharles Hannum1996-11-21 20:47:59 +0000
commit51a66525e85d89acfc8118f0d222fdccc40f361c (patch)
tree332b5844683d5898de41aa6e13e5603cec2cbb9b /lib-src
parent3aef7b4e6c6c08d3234ec2102f095708601d4ac7 (diff)
downloademacs-51a66525e85d89acfc8118f0d222fdccc40f361c.tar.gz
emacs-51a66525e85d89acfc8118f0d222fdccc40f361c.zip
gethostbyname() may return a pointer to static data, which is
overwritten deep inside krb_realmofhost(). Copy the host name to avoid conflicts.
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/pop.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 5657df5a5d0..c4d4c26e5ef 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -1005,6 +1005,7 @@ socket_connection (host, flags)
1005 CREDENTIALS cred; 1005 CREDENTIALS cred;
1006 Key_schedule schedule; 1006 Key_schedule schedule;
1007 int rem; 1007 int rem;
1008 char *realhost;
1008#endif /* KRB5 */ 1009#endif /* KRB5 */
1009#endif /* KERBEROS */ 1010#endif /* KERBEROS */
1010 1011
@@ -1175,8 +1176,9 @@ socket_connection (host, flags)
1175 } 1176 }
1176#else /* ! KRB5 */ 1177#else /* ! KRB5 */
1177 ticket = (KTEXT) malloc (sizeof (KTEXT_ST)); 1178 ticket = (KTEXT) malloc (sizeof (KTEXT_ST));
1178 rem = krb_sendauth (0L, sock, ticket, "pop", hostent->h_name, 1179 realhost = strdup (hostent->h_name);
1179 (char *) krb_realmofhost (hostent->h_name), 1180 rem = krb_sendauth (0L, sock, ticket, "pop", realhost,
1181 (char *) krb_realmofhost (realhost),
1180 (unsigned long) 0, &msg_data, &cred, schedule, 1182 (unsigned long) 0, &msg_data, &cred, schedule,
1181 (struct sockaddr_in *) 0, 1183 (struct sockaddr_in *) 0,
1182 (struct sockaddr_in *) 0, 1184 (struct sockaddr_in *) 0,