diff options
author | Jeremy Allison <jra@samba.org> | 2016-06-08 14:50:59 -0700 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2016-06-15 14:26:39 +0200 |
commit | 3af9006f3d6cc1219885ca7ce33a8ec075af7070 (patch) | |
tree | 055a224b4f54470f17ba75256e8f068fd171bd4c | |
parent | 4759f64e94e01e32b36f048d20bf4c94e4398ef3 (diff) | |
download | samba-3af9006f3d6cc1219885ca7ce33a8ec075af7070.tar.gz |
s3: krb5: keytab - The done label can be jumped to with context == NULL.
Ensure we don't crash in this case.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11959
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Uri Simchoni <uri@samba.org>
Autobuild-User(master): Uri Simchoni <uri@samba.org>
Autobuild-Date(master): Thu Jun 9 13:18:56 CEST 2016 on sn-devel-144
(cherry picked from commit e46cb9b835eb8f2bd998def82baf6f07fda9fe5c)
Autobuild-User(v4-2-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-2-test): Wed Jun 15 14:26:39 CEST 2016 on sn-devel-104
-rw-r--r-- | source3/libads/kerberos_keytab.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c index ae3d80e39c2..2068d037944 100644 --- a/source3/libads/kerberos_keytab.c +++ b/source3/libads/kerberos_keytab.c @@ -742,26 +742,24 @@ done: TALLOC_FREE(oldEntries); TALLOC_FREE(frame); - { + if (context) { krb5_keytab_entry zero_kt_entry; + krb5_kt_cursor zero_csr; + ZERO_STRUCT(zero_kt_entry); + ZERO_STRUCT(zero_csr); + if (memcmp(&zero_kt_entry, &kt_entry, sizeof(krb5_keytab_entry))) { smb_krb5_kt_free_entry(context, &kt_entry); } - } - { - krb5_kt_cursor zero_csr; - ZERO_STRUCT(zero_csr); if ((memcmp(&cursor, &zero_csr, sizeof(krb5_kt_cursor)) != 0) && keytab) { krb5_kt_end_seq_get(context, keytab, &cursor); } - } - if (keytab) { - krb5_kt_close(context, keytab); - } - if (context) { + if (keytab) { + krb5_kt_close(context, keytab); + } krb5_free_context(context); } return ret; |