From b52cbad24bcbf44cae2c2307abc10167390d8879 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 27 Feb 2023 09:14:10 +0100 Subject: [PATCH] cloud-setup: use nm_strv_dup_packed() in nm_http_client_poll_get() No need to do a deep clone. The strv array is not ever modified and we pack it together in one memory allocation. Conflicts: nm_strv_dup_packed is still called nm_utils_strv_dup_packed (cherry picked from commit 599fe234ea4864396eb70530513b2646aa97f576) (cherry picked from commit 3787eacac9c1fc9ff9b423f9d9cea9907e209ebb) (cherry picked from commit 89a6ce575d52bbaa1b928275c39517a071449da7) (cherry picked from commit d14dc95be3c8df026c2c16bfd6f55743a6dd377c) (cherry picked from commit 7e516418e02e346ae96283b57f124913b903d0ac) (cherry picked from commit becb47826a6be94cc4016dd980106516c6b67058) (cherry picked from commit 4704e1410037f47ced945d97014df7e6fffa500e) (cherry picked from commit 23b03def98d3dfa19c6c26c09fd3b3413f20d87c) --- clients/cloud-setup/nm-http-client.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/clients/cloud-setup/nm-http-client.c b/clients/cloud-setup/nm-http-client.c index c320a538a9..9030972a5f 100644 --- a/clients/cloud-setup/nm-http-client.c +++ b/clients/cloud-setup/nm-http-client.c @@ -413,7 +413,7 @@ _poll_get_data_free(gpointer data) g_free(poll_get_data->uri); nm_clear_pointer(&poll_get_data->response_data, g_bytes_unref); - g_strfreev((char **) poll_get_data->http_headers); + g_free((gpointer) poll_get_data->http_headers); nm_g_slice_free(poll_get_data); } @@ -546,9 +546,14 @@ nm_http_client_poll_get(NMHttpClient * self, .check_fcn = check_fcn, .check_user_data = check_user_data, .response_code = -1, - .http_headers = NM_CAST_STRV_CC(g_strdupv((char **) http_headers)), + .http_headers = NULL, }; + if (http_headers) { + poll_get_data->http_headers = + nm_utils_strv_dup_packed(http_headers, -1) ?: g_new(const char *, 1); + } + nmcs_wait_for_objects_register(poll_get_data->task); g_task_set_task_data(poll_get_data->task, poll_get_data, _poll_get_data_free);