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.

(cherry picked from commit 599fe234ea)
(cherry picked from commit 3787eacac9)
(cherry picked from commit 89a6ce575d)
(cherry picked from commit d14dc95be3)
This commit is contained in:
Thomas Haller 2023-02-27 09:14:10 +01:00 committed by Íñigo Huguet
parent f584b9c97b
commit 7e516418e0

View file

@ -419,7 +419,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);
}
@ -552,9 +552,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_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);