diff options
author | Samuel Cabrero <scabrero@zentyal.com> | 2014-06-12 10:39:02 +0200 |
---|---|---|
committer | Kamen Mazdrashki <kamenim@samba.org> | 2014-07-08 16:51:09 +0200 |
commit | caa42ed385dc174d9529407d128424c37cff8e9c (patch) | |
tree | 49e6c053924f7dae10edd650b39b8323411f72ea | |
parent | bf7f2b06e8e36710d0f9bf0684e70538e809dd16 (diff) | |
download | samba-caa42ed385dc174d9529407d128424c37cff8e9c.tar.gz samba-caa42ed385dc174d9529407d128424c37cff8e9c.tar.xz samba-caa42ed385dc174d9529407d128424c37cff8e9c.zip |
s4-auth-krb: Fix talloc access after free in smb_krb5_update_keytab
Change-Id: Iaa168d520f124e0c43c7edd649318f0b8ee25020
Signed-off-by: Samuel Cabrero <scabrero@zentyal.com>
Reviewed-by: Kamen Mazdrashki <kamenim@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Kamen Mazdrashki <kamenim@samba.org>
Autobuild-Date(master): Tue Jul 8 16:51:09 CEST 2014 on sn-devel-104
-rw-r--r-- | source4/auth/kerberos/srv_keytab.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source4/auth/kerberos/srv_keytab.c b/source4/auth/kerberos/srv_keytab.c index 1fc8b4cfed..bd42316687 100644 --- a/source4/auth/kerberos/srv_keytab.c +++ b/source4/auth/kerberos/srv_keytab.c @@ -277,7 +277,8 @@ static krb5_error_code create_keytab(TALLOC_CTX *parent_ctx, mem_ctx = talloc_new(parent_ctx); if (!mem_ctx) { - *error_string = "unable to allocate tmp_ctx for create_keytab"; + *error_string = talloc_strdup(parent_ctx, + "unable to allocate tmp_ctx for create_keytab"); return ENOMEM; } @@ -304,6 +305,7 @@ static krb5_error_code create_keytab(TALLOC_CTX *parent_ctx, salt_princ, kvno, new_secret, context, enctypes, keytab, error_string); if (ret) { + talloc_steal(parent_ctx, *error_string); goto done; } @@ -311,6 +313,9 @@ static krb5_error_code create_keytab(TALLOC_CTX *parent_ctx, ret = keytab_add_keys(mem_ctx, principals, salt_princ, kvno - 1, old_secret, context, enctypes, keytab, error_string); + if (ret) { + talloc_steal(parent_ctx, *error_string); + } } done: |