From 01ffcdd1c2fcd0ae48adade3d741dc9a546c4b0d Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 24 Jul 1999 18:41:57 +0000 Subject: [PATCH] (krb5_auth_con_setaddrs_from_fd): simplify by using `struct sockaddr_storage' git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6525 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/auth_context.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/lib/krb5/auth_context.c b/lib/krb5/auth_context.c index 41be4346e..adb8db692 100644 --- a/lib/krb5/auth_context.c +++ b/lib/krb5/auth_context.c @@ -141,27 +141,13 @@ krb5_auth_con_setaddrs_from_fd (krb5_context context, krb5_error_code ret; krb5_address local_k_address, remote_k_address; krb5_address *lptr = NULL, *rptr = NULL; - size_t max_sz = krb5_max_sockaddr_size (); - char *buf1 = NULL, *buf2 = NULL; - struct sockaddr *local, *remote; + struct sockaddr_storage ss_local, ss_remote; + struct sockaddr *local = (struct sockaddr *)&ss_local; + struct sockaddr *remote = (struct sockaddr *)&ss_remote; int len; - buf1 = malloc(max_sz); - if (buf1 == NULL) { - ret = ENOMEM; - goto out; - } - local = (struct sockaddr *)buf1; - - buf2 = malloc(max_sz); - if (buf2 == NULL) { - ret = ENOMEM; - goto out; - } - remote = (struct sockaddr *)buf2; - if (auth_context->local_address == NULL) { - len = max_sz; + len = sizeof(ss_local); if(getsockname(fd, local, &len) < 0) { ret = errno; goto out; @@ -171,7 +157,7 @@ krb5_auth_con_setaddrs_from_fd (krb5_context context, lptr = &local_k_address; } if (auth_context->remote_address == NULL) { - len = max_sz; + len = sizeof(ss_remote); if(getpeername(fd, remote, &len) < 0) { ret = errno; goto out; @@ -189,8 +175,6 @@ out: krb5_free_address (context, lptr); if (rptr) krb5_free_address (context, rptr); - free (buf1); - free (buf2); return ret; }