cloud-setup: use stack allocated buffer for temporary strings in "nmcs-provider-gcp.c"

The maximum length of these strings is known and small. Use
a buffer on the stack for them.
This commit is contained in:
Thomas Haller 2020-06-29 09:52:36 +02:00
parent 3d61b28941
commit 2fbc8717ca
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -321,7 +321,7 @@ _get_config_iface_cb (GObject *source,
gs_free_error GError *error = NULL; gs_free_error GError *error = NULL;
gs_free const char *hwaddr = NULL; gs_free const char *hwaddr = NULL;
gs_free const char *uri = NULL; gs_free const char *uri = NULL;
gs_free char *str = NULL; char sbuf[100];
GCPData *gcp_data; GCPData *gcp_data;
gcp_data = iface_data->gcp_data; gcp_data = iface_data->gcp_data;
@ -350,11 +350,10 @@ _get_config_iface_cb (GObject *source,
iface_data->iface_idx, iface_data->iface_idx,
hwaddr); hwaddr);
str = g_strdup_printf ("%"G_GSSIZE_FORMAT"/forwarded-ips/", nm_sprintf_buf (sbuf, "%"G_GSSIZE_FORMAT"/forwarded-ips/", iface_data->iface_idx);
iface_data->iface_idx);
nm_http_client_poll_get (NM_HTTP_CLIENT (source), nm_http_client_poll_get (NM_HTTP_CLIENT (source),
(uri = _gcp_uri_interfaces (str)), (uri = _gcp_uri_interfaces (sbuf)),
HTTP_TIMEOUT_MS, HTTP_TIMEOUT_MS,
HTTP_REQ_MAX_DATA, HTTP_REQ_MAX_DATA,
HTTP_POLL_TIMEOUT_MS, HTTP_POLL_TIMEOUT_MS,
@ -379,7 +378,6 @@ _get_net_ifaces_list_cb (GObject *source,
gpointer user_data) gpointer user_data)
{ {
gs_unref_ptrarray GPtrArray *ifaces_arr = NULL; gs_unref_ptrarray GPtrArray *ifaces_arr = NULL;
nm_auto_free_gstring GString *gstr = NULL;
gs_unref_bytes GBytes *response = NULL; gs_unref_bytes GBytes *response = NULL;
gs_free_error GError *error = NULL; gs_free_error GError *error = NULL;
GCPData *gcp_data = user_data; GCPData *gcp_data = user_data;
@ -405,7 +403,6 @@ _get_net_ifaces_list_cb (GObject *source,
nm_assert (response_str[response_len] == 0); nm_assert (response_str[response_len] == 0);
ifaces_arr = g_ptr_array_new (); ifaces_arr = g_ptr_array_new ();
gstr = g_string_new (NULL);
while (nm_utils_parse_next_line (&response_str, while (nm_utils_parse_next_line (&response_str,
&response_len, &response_len,
@ -443,14 +440,15 @@ _get_net_ifaces_list_cb (GObject *source,
for (i = 0; i < ifaces_arr->len; ++i) { for (i = 0; i < ifaces_arr->len; ++i) {
GCPIfaceData *data = ifaces_arr->pdata[i]; GCPIfaceData *data = ifaces_arr->pdata[i];
gs_free const char *uri = NULL; gs_free const char *uri = NULL;
char sbuf[100];
_LOGD ("GCP interface[%"G_GSSIZE_FORMAT"]: retrieving configuration", _LOGD ("GCP interface[%"G_GSSIZE_FORMAT"]: retrieving configuration",
data->iface_idx); data->iface_idx);
g_string_printf (gstr, "%"G_GSSIZE_FORMAT"/mac", data->iface_idx); nm_sprintf_buf (sbuf, "%"G_GSSIZE_FORMAT"/mac", data->iface_idx);
nm_http_client_poll_get (NM_HTTP_CLIENT (source), nm_http_client_poll_get (NM_HTTP_CLIENT (source),
(uri = _gcp_uri_interfaces (gstr->str)), (uri = _gcp_uri_interfaces (sbuf)),
HTTP_TIMEOUT_MS, HTTP_TIMEOUT_MS,
HTTP_REQ_MAX_DATA, HTTP_REQ_MAX_DATA,
HTTP_POLL_TIMEOUT_MS, HTTP_POLL_TIMEOUT_MS,