diff options
author | Stefan Metzmacher <metze@samba.org> | 2013-10-03 15:14:58 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2013-10-03 17:08:45 +0200 |
commit | 8b51eabf319689d45ce1f8492c4372b49eecb794 (patch) | |
tree | 1012b26d6fe4dd3e8a2f85693c0ca7884f681d66 | |
parent | 8f201fe6f30f3ae119c42b27a1a9999eeac8df6d (diff) | |
download | samba-8b51eabf319689d45ce1f8492c4372b49eecb794.tar.gz samba-8b51eabf319689d45ce1f8492c4372b49eecb794.tar.bz2 samba-8b51eabf319689d45ce1f8492c4372b49eecb794.zip |
Revert "Support UPN_DNS_INFO in the PAC"
This reverts commit a6be8a97f705247c1b1cbb0595887d8924740a71.
We fail (often) to parse a krb5pac type 12 buffer due to the incomplete change
which came in via a6be8a97f705247c1b1cbb0595887d8924740a71. This change came
into master and has only been released in RCs so no regression to published
4.0.x releases. We should revert this for 4.1 for now until we can make it work
in all cases (see work on this in
https://git.samba.org/?p=gd/samba/.git;a=shortlog;h=refs/heads/master-krb5pac_type12).
Without this revert the entire PAC parsing may fail which can effect serious
implications (krb5 smb session setup not working).
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10178
Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Thu Oct 3 17:08:46 CEST 2013 on sn-devel-104
-rw-r--r-- | librpc/idl/krb5pac.idl | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/librpc/idl/krb5pac.idl b/librpc/idl/krb5pac.idl index 0fce16baaa..8a6540c13b 100644 --- a/librpc/idl/krb5pac.idl +++ b/librpc/idl/krb5pac.idl @@ -37,20 +37,18 @@ interface krb5pac [size_is(num_transited_services)] lsa_String *transited_services; } PAC_CONSTRAINED_DELEGATION; - typedef [public,bitmap32bit] bitmap { - UDI_ACCT_HAS_NO_UPN = 0x00000001 /* 1= User account has no UPN */ - } upn_dns_info_flags; - typedef struct { [value(2*strlen_m(upn_name))] uint16 upn_size; uint16 upn_offset; [value(2*strlen_m(domain_name))] uint16 domain_size; uint16 domain_offset; - upn_dns_info_flags flags; - uint32 padding; + uint16 unknown3; /* 0x01 */ + uint16 unknown4; + uint32 unknown5; [charset(UTF16)] uint8 upn_name[upn_size+2]; [charset(UTF16)] uint8 domain_name[domain_size+2]; - } PAC_UPN_DNS_INFO; + uint32 unknown6; /* padding */ + } PAC_UNKNOWN_12; typedef [public] struct { PAC_LOGON_INFO *info; @@ -66,7 +64,7 @@ interface krb5pac PAC_TYPE_KDC_CHECKSUM = 7, PAC_TYPE_LOGON_NAME = 10, PAC_TYPE_CONSTRAINED_DELEGATION = 11, - PAC_TYPE_UPN_DNS_INFO = 12 + PAC_TYPE_UNKNOWN_12 = 12 } PAC_TYPE; typedef struct { @@ -80,12 +78,12 @@ interface krb5pac [case(PAC_TYPE_LOGON_NAME)] PAC_LOGON_NAME logon_name; [case(PAC_TYPE_CONSTRAINED_DELEGATION)][subcontext(0xFFFFFC01)] PAC_CONSTRAINED_DELEGATION_CTR constrained_delegation; - [case(PAC_TYPE_UPN_DNS_INFO)] PAC_UPN_DNS_INFO upn_dns_info; /* when new PAC info types are added they are supposed to be done in such a way that they are backwards compatible with existing servers. This makes it safe to just use a [default] for unknown types, which lets us ignore the data */ [default] [subcontext(0)] DATA_BLOB_REM unknown; + /* [case(PAC_TYPE_UNKNOWN_12)] PAC_UNKNOWN_12 unknown; */ } PAC_INFO; typedef [public,nopush,nopull,noprint] struct { |