diff --git a/lib/krb5/send_to_kdc.c b/lib/krb5/send_to_kdc.c index 0d63ab1b2..c9741fe5c 100644 --- a/lib/krb5/send_to_kdc.c +++ b/lib/krb5/send_to_kdc.c @@ -177,8 +177,8 @@ krb5_sendto_kdc (krb5_context context, int fd; int port; int i; - char *buf; - struct sockaddr *sa; + struct sockaddr_storage __ss; + struct sockaddr *sa = (struct sockaddr *)&__ss; port = krb5_getportbyname (context, "kerberos", "udp", 88); @@ -189,13 +189,6 @@ krb5_sendto_kdc (krb5_context context, if (ret) return ret; - buf = malloc(krb5_max_sockaddr_size ()); - if (buf == NULL) { - ret = ENOMEM; - goto out; - } - sa = (struct sockaddr *)buf; - for (i = 0; i < context->max_retries; ++i) for (hp = hostlist; (p = *hp); ++hp) { char **addr; @@ -323,6 +316,5 @@ krb5_sendto_kdc (krb5_context context, ret = KRB5_KDC_UNREACH; out: krb5_free_krbhst (context, hostlist); - free (buf); return ret; }