diff options
author | Andrew Bartlett <abartlet@samba.org> | 2018-10-23 17:33:46 +1300 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-11-26 09:38:10 +0100 |
commit | e1026a1685b5838f2ca67965025b2381751c35cb (patch) | |
tree | 6cc8f59401f9829a95e0d77cbb6dfdab0c9d98ff | |
parent | f7a8294d65e5a7424da93499074a30cb65418ce7 (diff) | |
download | samba-e1026a1685b5838f2ca67965025b2381751c35cb.tar.gz |
CVE-2018-16841 heimdal: Fix segfault on PKINIT with mis-matching principal
In Heimdal KRB5_KDC_ERR_CLIENT_NAME_MISMATCH is an enum, so we tried to double-free
mem_ctx.
This was introduced in 9a0263a7c316112caf0265237bfb2cfb3a3d370d for the
MIT KDC effort.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13628
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
-rw-r--r-- | source4/kdc/db-glue.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c index 9ac5a1d38f0..4d7ac333fcc 100644 --- a/source4/kdc/db-glue.c +++ b/source4/kdc/db-glue.c @@ -2578,10 +2578,10 @@ samba_kdc_check_pkinit_ms_upn_match(krb5_context context, * comparison */ if (!(orig_sid && target_sid && dom_sid_equal(orig_sid, target_sid))) { talloc_free(mem_ctx); -#ifdef KRB5_KDC_ERR_CLIENT_NAME_MISMATCH /* Heimdal */ - return KRB5_KDC_ERR_CLIENT_NAME_MISMATCH; -#elif defined(KRB5KDC_ERR_CLIENT_NAME_MISMATCH) /* MIT */ +#if defined(KRB5KDC_ERR_CLIENT_NAME_MISMATCH) /* MIT */ return KRB5KDC_ERR_CLIENT_NAME_MISMATCH; +#else /* Heimdal (where this is an enum) */ + return KRB5_KDC_ERR_CLIENT_NAME_MISMATCH; #endif } |