heimdal - free always "ctx->password" when it isn't needed anymore
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Tue, 16 Mar 2010 15:26:25 +0000 (16:26 +0100)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Tue, 16 Mar 2010 16:11:48 +0000 (17:11 +0100)
"strdup" does always create a new object in the memory (through "malloc") which
needs to be freed if it isn't used anymore.

source4/heimdal/lib/krb5/init_creds_pw.c

index b615f5340a3931149dc7452c11afdb865b0a3fa6..f32b4186a4a8898f8dbd643e7f20cbe34c8ba665 100644 (file)
@@ -107,6 +107,8 @@ free_init_creds_ctx(krb5_context context, krb5_init_creds_context ctx)
        free (ctx->pre_auth_types);
     if (ctx->in_tkt_service)
        free(ctx->in_tkt_service);
+    if (ctx->password)
+        free(ctx->password);
     if (ctx->keytab_data)
        free(ctx->keytab_data);
     krb5_data_free(&ctx->req_buffer);
@@ -1354,7 +1356,7 @@ krb5_init_creds_set_password(krb5_context context,
                             const char *password)
 {
     if (ctx->password)
-       memset(ctx->password, 0, strlen(ctx->password));
+        free(ctx->password);
     if (password) {
        ctx->password = strdup(password);
        if (ctx->password == NULL) {