[29296] in CVS-changelog-for-Kerberos-V5
krb5 commit: Use DB allocators for default key data encryption
daemon@ATHENA.MIT.EDU (Greg Hudson)
Fri Feb 19 15:47:04 2016
Date: Fri, 19 Feb 2016 15:46:56 -0500
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201602192046.u1JKkut9021447@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu
https://github.com/krb5/krb5/commit/2e9f19882c1e127fd7d9b09f9d6c3331ee638bfd
commit 2e9f19882c1e127fd7d9b09f9d6c3331ee638bfd
Author: Simo Sorce <simo@redhat.com>
Date: Wed Dec 16 13:19:27 2015 -0500
Use DB allocators for default key data encryption
krb5_dbe_def_encrypt_key_data() is used by KDB modules as the default
encryption functions. It deals with structures allocated or freed by
the KDB module, so it needs to use the module's memory allocation
functions.
src/lib/kdb/encrypt_key.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/lib/kdb/encrypt_key.c b/src/lib/kdb/encrypt_key.c
index 2ca4632..dafe612 100644
--- a/src/lib/kdb/encrypt_key.c
+++ b/src/lib/kdb/encrypt_key.c
@@ -73,9 +73,10 @@ krb5_dbe_def_encrypt_key_data( krb5_context context,
krb5_data plain;
krb5_enc_data cipher;
- for (i = 0; i < key_data->key_data_ver; i++)
- if (key_data->key_data_contents[i])
- free(key_data->key_data_contents[i]);
+ for (i = 0; i < key_data->key_data_ver; i++) {
+ krb5_db_free(context, key_data->key_data_contents[i]);
+ key_data->key_data_contents[i] = NULL;
+ }
key_data->key_data_ver = 1;
key_data->key_data_kvno = keyver;
@@ -88,7 +89,8 @@ krb5_dbe_def_encrypt_key_data( krb5_context context,
&len)))
return(retval);
- if ((ptr = (krb5_octet *) malloc(2 + len)) == NULL)
+ ptr = krb5_db_alloc(context, NULL, 2 + len);
+ if (ptr == NULL)
return(ENOMEM);
key_data->key_data_type[0] = dbkey->enctype;
@@ -106,7 +108,7 @@ krb5_dbe_def_encrypt_key_data( krb5_context context,
if ((retval = krb5_c_encrypt(context, mkey, /* XXX */ 0, 0,
&plain, &cipher))) {
- free(key_data->key_data_contents[0]);
+ krb5_db_free(context, key_data->key_data_contents[0]);
return retval;
}
@@ -117,9 +119,9 @@ krb5_dbe_def_encrypt_key_data( krb5_context context,
key_data->key_data_type[1] = keysalt->type;
if ((key_data->key_data_length[1] = keysalt->data.length) != 0) {
key_data->key_data_contents[1] =
- (krb5_octet *)malloc(keysalt->data.length);
+ krb5_db_alloc(context, NULL, keysalt->data.length);
if (key_data->key_data_contents[1] == NULL) {
- free(key_data->key_data_contents[0]);
+ krb5_db_free(context, key_data->key_data_contents[0]);
return ENOMEM;
}
memcpy(key_data->key_data_contents[1], keysalt->data.data,
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5