diff --git a/lib/krb5/addr_families.c b/lib/krb5/addr_families.c index 798e7bf3a..851ddd327 100644 --- a/lib/krb5/addr_families.c +++ b/lib/krb5/addr_families.c @@ -1033,6 +1033,7 @@ krb5_free_address(krb5_context context, if(a != NULL && a->free_addr != NULL) return (*a->free_addr)(context, address); krb5_data_free (&address->address); + memset(address, 0, sizeof(*address)); return 0; } diff --git a/lib/krb5/context.c b/lib/krb5/context.c index e11658d0e..bd1afd261 100644 --- a/lib/krb5/context.c +++ b/lib/krb5/context.c @@ -266,6 +266,7 @@ krb5_free_context(krb5_context context) HEIMDAL_MUTEX_destroy(context->mutex); free(context->mutex); } + memset(context, 0, sizeof(*context)); free(context); } diff --git a/lib/krb5/creds.c b/lib/krb5/creds.c index f1a6af42e..8fed5badf 100644 --- a/lib/krb5/creds.c +++ b/lib/krb5/creds.c @@ -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). * All rights reserved. * @@ -54,6 +54,7 @@ krb5_free_cred_contents (krb5_context context, krb5_creds *c) krb5_data_free (&c->second_ticket); free_AuthorizationData (&c->authdata); krb5_free_addresses (context, &c->addresses); + memset(c, 0, sizeof(*c)); return 0; } diff --git a/lib/krb5/free.c b/lib/krb5/free.c index f4350b49c..5a50e3a99 100644 --- a/lib/krb5/free.c +++ b/lib/krb5/free.c @@ -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). * 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_EncTGSRepPart(&rep->enc_part); free_KRB_ERROR(&rep->error); + memset(rep, 0, sizeo(*rep)); return 0; } diff --git a/lib/krb5/keyblock.c b/lib/krb5/keyblock.c index 5af23d67f..2f1caedcf 100644 --- a/lib/krb5/keyblock.c +++ b/lib/krb5/keyblock.c @@ -50,6 +50,7 @@ krb5_free_keyblock_contents(krb5_context context, if (keyblock->keyvalue.data != NULL) memset(keyblock->keyvalue.data, 0, keyblock->keyvalue.length); krb5_data_free (&keyblock->keyvalue); + keyblock->keytype = ENCTYPE_NULL; } } diff --git a/lib/krb5/mit_glue.c b/lib/krb5/mit_glue.c index bcd912c53..abce5e431 100644 --- a/lib/krb5/mit_glue.c +++ b/lib/krb5/mit_glue.c @@ -127,6 +127,7 @@ void KRB5_LIB_FUNCTION krb5_free_checksum_contents(krb5_context context, krb5_checksum *cksum) { krb5_checksum_free(context, cksum); + memset(cksum, 0, sizeof(*cksum)); } void KRB5_LIB_FUNCTION diff --git a/lib/krb5/rd_error.c b/lib/krb5/rd_error.c index abe60f76f..57fe68cc8 100644 --- a/lib/krb5/rd_error.c +++ b/lib/krb5/rd_error.c @@ -56,6 +56,7 @@ krb5_free_error_contents (krb5_context context, krb5_error *error) { free_KRB_ERROR(error); + memset(error, 0, sizeof(*error)); } void KRB5_LIB_FUNCTION