summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2016-06-08 14:50:59 -0700
committerUri Simchoni <uri@samba.org>2016-06-09 13:18:56 +0200
commite46cb9b835eb8f2bd998def82baf6f07fda9fe5c (patch)
treec3b6ceabb8861bea40c460ab75e954b454679209 /source3
parent0e2711b2a0adeda6873f9c8161b9b01a56ae7098 (diff)
downloadsamba-e46cb9b835eb8f2bd998def82baf6f07fda9fe5c.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
Diffstat (limited to 'source3')
-rw-r--r--source3/libads/kerberos_keytab.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c
index 731895e0bc2..160b58396a4 100644
--- a/source3/libads/kerberos_keytab.c
+++ b/source3/libads/kerberos_keytab.c
@@ -552,26 +552,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;