mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-05 02:57:58 +02:00
keyfile: avoid heap allocating temporay name for numbered key in ip_address_or_route_parser()
Odd, we iterate over a thousand names, without aborting when the first key isn't present. On the other hand, it means we cannot parse more then 1000 routes either :( Anyway, don't heap allocate the temporay string for the key name.
This commit is contained in:
parent
cb06a36a18
commit
d4aae4c255
1 changed files with 7 additions and 7 deletions
|
|
@ -490,15 +490,17 @@ ip_address_or_route_parser (KeyfileReaderInfo *info, NMSetting *setting, const c
|
|||
const char **key_basename;
|
||||
|
||||
for (key_basename = key_names; *key_basename; key_basename++) {
|
||||
char *key_name;
|
||||
char key_name_buf[100];
|
||||
const char *key_name;
|
||||
gpointer item;
|
||||
char options_key[128];
|
||||
|
||||
/* -1 means no suffix */
|
||||
if (i >= 0)
|
||||
key_name = g_strdup_printf ("%s%d", *key_basename, i);
|
||||
else
|
||||
key_name = g_strdup (*key_basename);
|
||||
key_name = *key_basename;
|
||||
if (i >= 0) {
|
||||
nm_sprintf_buf (key_name_buf, "%s%d", key_name, i);
|
||||
key_name = key_name_buf;
|
||||
}
|
||||
|
||||
item = read_one_ip_address_or_route (info, key, setting_name, key_name, ipv6, routes,
|
||||
gateway ? NULL : &gateway, setting);
|
||||
|
|
@ -507,8 +509,6 @@ ip_address_or_route_parser (KeyfileReaderInfo *info, NMSetting *setting, const c
|
|||
fill_route_attributes (info->keyfile, item, setting_name, options_key, ipv6 ? AF_INET6 : AF_INET);
|
||||
}
|
||||
|
||||
g_free (key_name);
|
||||
|
||||
if (info->error) {
|
||||
g_ptr_array_unref (list);
|
||||
g_free (gateway);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue