From: Günther Deschner Date: Thu, 15 May 2014 07:13:06 +0000 (+0200) Subject: s4:kdc: Do not encode the NTSTATUS error into a PA-DATA, just linearlise it X-Git-Tag: tdb-1.4.6~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aaaae360192397533db75442f22701c8c85849c2;p=thirdparty%2Fsamba.git s4:kdc: Do not encode the NTSTATUS error into a PA-DATA, just linearlise it This allows another routine to do the wrapping. NOTE: THIS COMMIT WON'T COMPILE/WORK ON ITS OWN! Signed-off-by: Andrew Bartlett Reviewed-by: Stefan Metzmacher --- diff --git a/source4/kdc/wdc-samba4.c b/source4/kdc/wdc-samba4.c index b54825224a5..b1df29fe00b 100644 --- a/source4/kdc/wdc-samba4.c +++ b/source4/kdc/wdc-samba4.c @@ -839,37 +839,17 @@ static krb5_data fill_krb5_data(void *data, size_t length) static void samba_kdc_build_edata_reply(NTSTATUS nt_status, DATA_BLOB *e_data) { krb5_error_code ret = 0; - PA_DATA pa; - unsigned char *buf; - size_t len; - - if (!e_data) - return; - - e_data->data = NULL; - e_data->length = 0; - - pa.padata_type = KRB5_PADATA_PW_SALT; - pa.padata_value.length = 12; - pa.padata_value.data = malloc(pa.padata_value.length); - if (!pa.padata_value.data) { + e_data->data = malloc(12); + if (e_data->data == NULL) { e_data->length = 0; e_data->data = NULL; return; } + e_data->length = 12; - SIVAL(pa.padata_value.data, 0, NT_STATUS_V(nt_status)); - SIVAL(pa.padata_value.data, 4, 0); - SIVAL(pa.padata_value.data, 8, 1); - - ASN1_MALLOC_ENCODE(PA_DATA, buf, len, &pa, &len, ret); - free(pa.padata_value.data); - if (ret) { - return; - } - - e_data->data = buf; - e_data->length = len; + SIVAL(e_data->data, 0, NT_STATUS_V(nt_status)); + SIVAL(e_data->data, 4, 0); + SIVAL(e_data->data, 8, 1); return; }