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:
Love Hörnquist Åstrand
2007-02-22 01:42:47 +00:00
parent 072dcc606a
commit bebd317964

View File

@@ -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;