From f0aee062463fa803f97d489626b45c797d320100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Mon, 6 Sep 2004 11:39:10 +0000 Subject: [PATCH] Fix memory leak, don't return stack variables From Andrew Bartlett git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14199 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/kadm5/set_keys.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/kadm5/set_keys.c b/lib/kadm5/set_keys.c index 0c6e6a56d..d8f61a65c 100644 --- a/lib/kadm5/set_keys.c +++ b/lib/kadm5/set_keys.c @@ -129,7 +129,11 @@ parse_key_set(krb5_context context, const char *key, /* if there is a final string, use it as the string to salt with, this is mostly useful with null salt for v4 compat, and a cell name for afs compat */ - salt->saltvalue.data = buf[i]; + salt->saltvalue.data = strdup(buf[i]); + if (salt->saltvalue.data == NULL) { + krb5_set_error_string(context, "malloc out of memory"); + return ENOMEM; + } salt->saltvalue.length = strlen(buf[i]); } } @@ -291,10 +295,13 @@ _kadm5_generate_key_set(krb5_context context, krb5_principal principal, if (j == *nkeyset) { ret = add_enctype_to_key_set(&key_set, nkeyset, enctypes[i], no_salt ? NULL : &salt); - if (ret) + if (ret) { + krb5_free_salt(context, salt); goto out; + } } } + krb5_free_salt(context, salt); } out: