summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2010-09-02 16:07:00 -0400
committerGünther Deschner <gd@samba.org>2010-09-02 22:48:09 +0200
commitd9c63fbe9275c0abfc0351cac3669fb52c1c99da (patch)
tree38e15e2556d7f6e6b10566f80bf848decd6898b2
parentac317eba25ab9d55866523858a5a9c6b1363de1f (diff)
downloadsamba-d9c63fbe9275c0abfc0351cac3669fb52c1c99da.tar.gz
samba-d9c63fbe9275c0abfc0351cac3669fb52c1c99da.tar.bz2
samba-d9c63fbe9275c0abfc0351cac3669fb52c1c99da.zip
Revert "s3-kerberos: use krb5 compat macros in fill_keytab_from_password()."
This reverts commit 9986d25ed195ee77bd73c96f057c527b4c3a8f03. This patch was causing us to free unallocated memory. Signed-off-by: Günther Deschner <gd@samba.org>
-rw-r--r--source3/librpc/rpc/dcerpc_krb5.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source3/librpc/rpc/dcerpc_krb5.c b/source3/librpc/rpc/dcerpc_krb5.c
index 2d39a45b67..9e709d8334 100644
--- a/source3/librpc/rpc/dcerpc_krb5.c
+++ b/source3/librpc/rpc/dcerpc_krb5.c
@@ -128,7 +128,10 @@ static krb5_error_code fill_keytab_from_password(krb5_context krbctx,
for (i = 0; enctypes[i]; i++) {
krb5_keyblock *key = NULL;
- key = KRB5_KT_KEY(&kt_entry);
+ if (!(key = SMB_MALLOC_P(krb5_keyblock))) {
+ ret = ENOMEM;
+ goto out;
+ }
if (create_kerberos_key_from_string(krbctx, princ,
password, key,
@@ -136,11 +139,13 @@ static krb5_error_code fill_keytab_from_password(krb5_context krbctx,
DEBUG(10, ("Failed to create key for enctype %d "
"(error: %s)\n",
enctypes[i], error_message(ret)));
+ SAFE_FREE(key);
continue;
}
kt_entry.principal = princ;
kt_entry.vno = vno;
+ kt_entry.key = *key;
ret = krb5_kt_add_entry(krbctx, keytab, &kt_entry);
if (ret) {