free always "ctx->password" when it isn't needed anymore
Patch originally from Matthias Dieter Wallnöfer, changed by me to keep clearing the password from memory.
This commit is contained in:
@@ -136,6 +136,10 @@ free_init_creds_ctx(krb5_context context, krb5_init_creds_context ctx)
|
|||||||
free(ctx->in_tkt_service);
|
free(ctx->in_tkt_service);
|
||||||
if (ctx->keytab_data)
|
if (ctx->keytab_data)
|
||||||
free(ctx->keytab_data);
|
free(ctx->keytab_data);
|
||||||
|
if (ctx->password) {
|
||||||
|
memset(ctx->password, 0, strlen(ctx->password));
|
||||||
|
free(ctx->password);
|
||||||
|
}
|
||||||
krb5_data_free(&ctx->req_buffer);
|
krb5_data_free(&ctx->req_buffer);
|
||||||
krb5_free_cred_contents(context, &ctx->cred);
|
krb5_free_cred_contents(context, &ctx->cred);
|
||||||
free_METHOD_DATA(&ctx->md);
|
free_METHOD_DATA(&ctx->md);
|
||||||
@@ -1431,8 +1435,10 @@ krb5_init_creds_set_password(krb5_context context,
|
|||||||
krb5_init_creds_context ctx,
|
krb5_init_creds_context ctx,
|
||||||
const char *password)
|
const char *password)
|
||||||
{
|
{
|
||||||
if (ctx->password)
|
if (ctx->password) {
|
||||||
memset(ctx->password, 0, strlen(ctx->password));
|
memset(ctx->password, 0, strlen(ctx->password));
|
||||||
|
free(ctx->password);
|
||||||
|
}
|
||||||
if (password) {
|
if (password) {
|
||||||
ctx->password = strdup(password);
|
ctx->password = strdup(password);
|
||||||
if (ctx->password == NULL) {
|
if (ctx->password == NULL) {
|
||||||
|
Reference in New Issue
Block a user