1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-03 13:47:25 +03:00

s4:kdc: Avoid copying data if not needed

krb5_pac_add_buffer() makes its own copy of the data we pass in. We
don't need to make yet another copy.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Joseph Sutton 2023-03-17 09:16:17 +13:00 committed by Andrew Bartlett
parent 47ef49fd91
commit fa901e7346

View File

@ -2042,12 +2042,9 @@ krb5_error_code samba_kdc_update_pac(TALLOC_CTX *mem_ctx,
}
if (type_blob.length != 0) {
code = smb_krb5_copy_data_contents(&type_data,
type_blob.data,
type_blob.length);
if (code != 0) {
goto done;
}
type_data = smb_krb5_data_from_blob(type_blob);
code = krb5_pac_add_buffer(context, new_pac,
type, &type_data);
} else {
code = krb5_pac_get_buffer(context,
old_pac,
@ -2056,17 +2053,17 @@ krb5_error_code samba_kdc_update_pac(TALLOC_CTX *mem_ctx,
if (code != 0) {
goto done;
}
/*
* Passing a NULL pointer into krb5_pac_add_buffer() is
* not allowed, so pass null_data instead if needed.
*/
code = krb5_pac_add_buffer(context,
new_pac,
type,
(type_data.data != NULL) ? &type_data : &null_data);
smb_krb5_free_data_contents(context, &type_data);
}
/*
* Passing a NULL pointer into krb5_pac_add_buffer() is
* not allowed, so pass null_data instead if needed.
*/
code = krb5_pac_add_buffer(context,
new_pac,
type,
(type_data.data != NULL) ? &type_data : &null_data);
smb_krb5_free_data_contents(context, &type_data);
if (code != 0) {
goto done;
}