zero out content of all krb5_free_x_content like functions to make sure data doesnt get reused, idea from Wynn Wilkes <wwilkes@vintela.com>

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15167 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2005-05-18 04:21:57 +00:00
parent b926505f3f
commit e84fad2e0e
7 changed files with 9 additions and 2 deletions

View File

@@ -1033,6 +1033,7 @@ krb5_free_address(krb5_context context,
if(a != NULL && a->free_addr != NULL) if(a != NULL && a->free_addr != NULL)
return (*a->free_addr)(context, address); return (*a->free_addr)(context, address);
krb5_data_free (&address->address); krb5_data_free (&address->address);
memset(address, 0, sizeof(*address));
return 0; return 0;
} }

View File

@@ -266,6 +266,7 @@ krb5_free_context(krb5_context context)
HEIMDAL_MUTEX_destroy(context->mutex); HEIMDAL_MUTEX_destroy(context->mutex);
free(context->mutex); free(context->mutex);
} }
memset(context, 0, sizeof(*context));
free(context); free(context);
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997 - 2004 Kungliga Tekniska H<>gskolan * Copyright (c) 1997 - 2005 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -54,6 +54,7 @@ krb5_free_cred_contents (krb5_context context, krb5_creds *c)
krb5_data_free (&c->second_ticket); krb5_data_free (&c->second_ticket);
free_AuthorizationData (&c->authdata); free_AuthorizationData (&c->authdata);
krb5_free_addresses (context, &c->addresses); krb5_free_addresses (context, &c->addresses);
memset(c, 0, sizeof(*c));
return 0; return 0;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan * Copyright (c) 1997 - 1999, 2004 - 2005 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -41,6 +41,7 @@ krb5_free_kdc_rep(krb5_context context, krb5_kdc_rep *rep)
free_KDC_REP(&rep->kdc_rep); free_KDC_REP(&rep->kdc_rep);
free_EncTGSRepPart(&rep->enc_part); free_EncTGSRepPart(&rep->enc_part);
free_KRB_ERROR(&rep->error); free_KRB_ERROR(&rep->error);
memset(rep, 0, sizeo(*rep));
return 0; return 0;
} }

View File

@@ -50,6 +50,7 @@ krb5_free_keyblock_contents(krb5_context context,
if (keyblock->keyvalue.data != NULL) if (keyblock->keyvalue.data != NULL)
memset(keyblock->keyvalue.data, 0, keyblock->keyvalue.length); memset(keyblock->keyvalue.data, 0, keyblock->keyvalue.length);
krb5_data_free (&keyblock->keyvalue); krb5_data_free (&keyblock->keyvalue);
keyblock->keytype = ENCTYPE_NULL;
} }
} }

View File

@@ -127,6 +127,7 @@ void KRB5_LIB_FUNCTION
krb5_free_checksum_contents(krb5_context context, krb5_checksum *cksum) krb5_free_checksum_contents(krb5_context context, krb5_checksum *cksum)
{ {
krb5_checksum_free(context, cksum); krb5_checksum_free(context, cksum);
memset(cksum, 0, sizeof(*cksum));
} }
void KRB5_LIB_FUNCTION void KRB5_LIB_FUNCTION

View File

@@ -56,6 +56,7 @@ krb5_free_error_contents (krb5_context context,
krb5_error *error) krb5_error *error)
{ {
free_KRB_ERROR(error); free_KRB_ERROR(error);
memset(error, 0, sizeof(*error));
} }
void KRB5_LIB_FUNCTION void KRB5_LIB_FUNCTION