summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-02-27 09:14:10 +0100
committerLubomir Rintel <lkundrak@v3.sk>2023-03-09 15:13:32 +0100
commit89a6ce575d52bbaa1b928275c39517a071449da7 (patch)
treedcd8b8fee5b0e29298750b346e6cba018d0fb302
parent19d08eeb3d24b2ddce0b90fd49f03a468afbd6af (diff)
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 599fe234ea4864396eb70530513b2646aa97f576) (cherry picked from commit 3787eacac9c1fc9ff9b423f9d9cea9907e209ebb)
-rw-r--r--src/nm-cloud-setup/nm-http-client.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/nm-cloud-setup/nm-http-client.c b/src/nm-cloud-setup/nm-http-client.c
index a0964e2165..98ede1e403 100644
--- a/src/nm-cloud-setup/nm-http-client.c
+++ b/src/nm-cloud-setup/nm-http-client.c
@@ -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);