kdc: Fix leaks
This commit is contained in:
@@ -1825,6 +1825,7 @@ again:
|
||||
}
|
||||
|
||||
MHD_stop_daemon(current);
|
||||
_krb5_unload_plugins(context, "kdc");
|
||||
pthread_key_delete(k5ctx);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -174,6 +174,7 @@ main(int argc, char **argv)
|
||||
switch_environment();
|
||||
|
||||
start_kdc(context, config, argv[0]);
|
||||
_krb5_unload_plugins(context, "kdc");
|
||||
krb5_free_context(context);
|
||||
free(config);
|
||||
return 0;
|
||||
|
@@ -98,6 +98,7 @@ _kdc_audit_addkv(kdc_request_t r, int flags, const char *k,
|
||||
}
|
||||
|
||||
heim_array_append_value(r->kv, str);
|
||||
heim_release(str);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -360,7 +361,6 @@ process_request(krb5_context context,
|
||||
krb5_error_code ret;
|
||||
unsigned int i;
|
||||
int claim = 0;
|
||||
heim_auto_release_t pool = heim_auto_release_create();
|
||||
|
||||
r = calloc(sizeof(*r), 1);
|
||||
if (!r)
|
||||
@@ -396,16 +396,16 @@ process_request(krb5_context context,
|
||||
free(r->cname);
|
||||
free(r->sname);
|
||||
free(r->e_text_buf);
|
||||
heim_release(r->kv);
|
||||
}
|
||||
|
||||
heim_release(pool);
|
||||
heim_release(r->kv);
|
||||
free(r);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
heim_release(pool);
|
||||
|
||||
heim_release(r->kv);
|
||||
free(r);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@@ -72,6 +72,7 @@ main(int argc, char **argv)
|
||||
krb5_err(context, 1, ret, "Authorization failed");
|
||||
printf("Authorized!\n");
|
||||
krb5_free_principal(context, princ);
|
||||
_krb5_unload_plugins(context, "kdc");
|
||||
krb5_free_context(context);
|
||||
hx509_request_free(&csr);
|
||||
/* FIXME There's no free function for config yet */
|
||||
|
@@ -136,6 +136,7 @@ main(int argc, char **argv)
|
||||
if (ret != HX509_UNSUPPORTED_OPERATION)
|
||||
krb5_err(context, 1, ret,
|
||||
"Could not store certificate and chain in %s", out);
|
||||
_krb5_unload_plugins(context, "kdc");
|
||||
krb5_free_principal(context, p);
|
||||
krb5_free_context(context);
|
||||
hx509_request_free(&req);
|
||||
|
@@ -81,6 +81,8 @@ main(int argc, char **argv)
|
||||
printf("Token is valid. Actual principal: %s\n", s);
|
||||
else
|
||||
printf("Token is valid.");
|
||||
_krb5_unload_plugins(context, "kdc");
|
||||
krb5_free_principal(context, actual_princ);
|
||||
krb5_free_context(context);
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user