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