(krb5_free_context): free more stuff
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10609 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -225,6 +225,11 @@ krb5_free_context(krb5_context context)
|
|||||||
free(context->cc_ops[i].prefix);
|
free(context->cc_ops[i].prefix);
|
||||||
free(context->cc_ops);
|
free(context->cc_ops);
|
||||||
free(context->kt_types);
|
free(context->kt_types);
|
||||||
|
krb5_clear_error_string(context);
|
||||||
|
if(context->warn_dest != NULL)
|
||||||
|
krb5_closelog(context, context->warn_dest);
|
||||||
|
krb5_set_extra_addresses(context, NULL);
|
||||||
|
krb5_set_ignore_addresses(context, NULL);
|
||||||
free(context);
|
free(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,9 +360,15 @@ krb5_add_extra_addresses(krb5_context context, krb5_addresses *addresses)
|
|||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_set_extra_addresses(krb5_context context, const krb5_addresses *addresses)
|
krb5_set_extra_addresses(krb5_context context, const krb5_addresses *addresses)
|
||||||
{
|
{
|
||||||
if(context->extra_addresses) {
|
if(context->extra_addresses)
|
||||||
krb5_free_addresses(context, context->extra_addresses);
|
krb5_free_addresses(context, context->extra_addresses);
|
||||||
|
|
||||||
|
if(addresses == NULL) {
|
||||||
|
if(context->extra_addresses != NULL) {
|
||||||
free(context->extra_addresses);
|
free(context->extra_addresses);
|
||||||
|
context->extra_addresses = NULL;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
if(context->extra_addresses == NULL) {
|
if(context->extra_addresses == NULL) {
|
||||||
context->extra_addresses = malloc(sizeof(*context->extra_addresses));
|
context->extra_addresses = malloc(sizeof(*context->extra_addresses));
|
||||||
@@ -393,9 +404,14 @@ krb5_add_ignore_addresses(krb5_context context, krb5_addresses *addresses)
|
|||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_set_ignore_addresses(krb5_context context, const krb5_addresses *addresses)
|
krb5_set_ignore_addresses(krb5_context context, const krb5_addresses *addresses)
|
||||||
{
|
{
|
||||||
if(context->ignore_addresses) {
|
if(context->ignore_addresses)
|
||||||
krb5_free_addresses(context, context->ignore_addresses);
|
krb5_free_addresses(context, context->ignore_addresses);
|
||||||
|
if(addresses == NULL) {
|
||||||
|
if(context->ignore_addresses != NULL) {
|
||||||
free(context->ignore_addresses);
|
free(context->ignore_addresses);
|
||||||
|
context->ignore_addresses = NULL;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
if(context->ignore_addresses == NULL) {
|
if(context->ignore_addresses == NULL) {
|
||||||
context->ignore_addresses = malloc(sizeof(*context->ignore_addresses));
|
context->ignore_addresses = malloc(sizeof(*context->ignore_addresses));
|
||||||
|
Reference in New Issue
Block a user