mirror of
https://github.com/samba-team/samba.git
synced 2025-08-21 09:49:28 +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>
(cherry picked from commit fa901e7346
)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15476
This commit is contained in:
committed by
Jule Anger
parent
f1b7a21a7f
commit
d96cd43df0
@ -1939,12 +1939,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,
|
||||
@ -1953,17 +1950,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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user