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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user