Create the PAC element in the same order as w2k3,
maybe there's some broken code in windows which relies on this... From metze. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20275 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -852,12 +852,12 @@ _krb5_pac_sign(krb5_context context,
|
||||
|
||||
krb5_data_zero(&logon);
|
||||
|
||||
if (p->logon_name == NULL)
|
||||
num++;
|
||||
if (p->server_checksum == NULL)
|
||||
num++;
|
||||
if (p->privsvr_checksum == NULL)
|
||||
num++;
|
||||
if (p->logon_name == NULL)
|
||||
num++;
|
||||
|
||||
if (num) {
|
||||
void *ptr;
|
||||
@@ -869,6 +869,11 @@ _krb5_pac_sign(krb5_context context,
|
||||
}
|
||||
p->pac = ptr;
|
||||
|
||||
if (p->logon_name == NULL) {
|
||||
p->logon_name = &p->pac->buffers[p->pac->numbuffers++];
|
||||
memset(p->logon_name, 0, sizeof(*p->logon_name));
|
||||
p->logon_name->type = PAC_LOGON_NAME;
|
||||
}
|
||||
if (p->server_checksum == NULL) {
|
||||
p->server_checksum = &p->pac->buffers[p->pac->numbuffers++];
|
||||
memset(p->server_checksum, 0, sizeof(*p->server_checksum));
|
||||
@@ -879,11 +884,6 @@ _krb5_pac_sign(krb5_context context,
|
||||
memset(p->privsvr_checksum, 0, sizeof(*p->privsvr_checksum));
|
||||
p->privsvr_checksum->type = PAC_PRIVSVR_CHECKSUM;
|
||||
}
|
||||
if (p->logon_name == NULL) {
|
||||
p->logon_name = &p->pac->buffers[p->pac->numbuffers++];
|
||||
memset(p->logon_name, 0, sizeof(*p->logon_name));
|
||||
p->logon_name->type = PAC_LOGON_NAME;
|
||||
}
|
||||
}
|
||||
|
||||
/* Calculate LOGON NAME */
|
||||
@@ -892,7 +892,6 @@ _krb5_pac_sign(krb5_context context,
|
||||
goto out;
|
||||
|
||||
/* Set lengths for checksum */
|
||||
|
||||
ret = pac_checksum(context, server_key, &server_cksumtype, &server_size);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
Reference in New Issue
Block a user