wwan/ofono: fix memory leak in handle_settings()

[thaller@redhat.com: modified original patch.]

Fixes: 58287cbcc0 ('core: rework IP configuration in NetworkManager using layer 3 configuration')
(cherry picked from commit 61e99ed715)
This commit is contained in:
Ratchanan Srirattanamet 2022-10-10 02:06:12 +07:00 committed by Thomas Haller
parent 0797b26846
commit a8813ff6fe
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -739,7 +739,7 @@ handle_settings(GVariant *v_dict, gpointer user_data)
gboolean ret = FALSE;
const char *interface;
const char *s;
const char **array;
gs_free const char **array = NULL;
guint32 address_network, gateway_network;
int ifindex;
GError *error = NULL;
@ -838,15 +838,16 @@ handle_settings(GVariant *v_dict, gpointer user_data)
}
if (array) {
gboolean any_good = FALSE;
gsize i;
for (; array[0]; array++) {
if (!nm_utils_parse_inaddr_bin(AF_INET, *array, NULL, &address_network)
for (i = 0; array[i]; i++) {
if (!nm_utils_parse_inaddr_bin(AF_INET, array[i], NULL, &address_network)
|| !address_network) {
_LOGW("invalid NameServer: %s", *array);
_LOGW("invalid NameServer: %s", array[i]);
continue;
}
any_good = TRUE;
_LOGI("DNS: %s", *array);
_LOGI("DNS: %s", array[i]);
nm_l3_config_data_add_nameserver(priv->l3cd_4, AF_INET, &address_network);
}
if (!any_good) {