From: Joseph Sutton Date: Thu, 16 Mar 2023 20:16:17 +0000 (+1300) Subject: s4:kdc: Avoid copying data if not needed X-Git-Tag: talloc-2.4.1~1375 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa901e7346d36ae64a7ceab5dcf76bc210a67c93;p=thirdparty%2Fsamba.git 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 Reviewed-by: Andrew Bartlett --- diff --git a/source4/kdc/pac-glue.c b/source4/kdc/pac-glue.c index 704cfcda661..6e3dc196227 100644 --- a/source4/kdc/pac-glue.c +++ b/source4/kdc/pac-glue.c @@ -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; }