mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-08 22:58:16 +02:00
libnm: avoid cloning buffer for nm_connection_get_settings() in nm_keyfile_write()
This commit is contained in:
parent
5aef93355f
commit
b0f4bb84bf
1 changed files with 9 additions and 7 deletions
|
|
@ -4083,10 +4083,9 @@ nm_keyfile_write(NMConnection * connection,
|
||||||
nm_auto_unref_keyfile GKeyFile *keyfile = NULL;
|
nm_auto_unref_keyfile GKeyFile *keyfile = NULL;
|
||||||
GError * local = NULL;
|
GError * local = NULL;
|
||||||
KeyfileWriterInfo info;
|
KeyfileWriterInfo info;
|
||||||
gs_free NMSetting **settings = NULL;
|
NMSetting ** settings;
|
||||||
guint n_settings = 0;
|
int i;
|
||||||
guint i;
|
guint j;
|
||||||
guint j;
|
|
||||||
|
|
||||||
g_return_val_if_fail(NM_IS_CONNECTION(connection), NULL);
|
g_return_val_if_fail(NM_IS_CONNECTION(connection), NULL);
|
||||||
g_return_val_if_fail(!error || !*error, NULL);
|
g_return_val_if_fail(!error || !*error, NULL);
|
||||||
|
|
@ -4124,13 +4123,16 @@ nm_keyfile_write(NMConnection * connection,
|
||||||
.user_data = user_data,
|
.user_data = user_data,
|
||||||
};
|
};
|
||||||
|
|
||||||
settings = nm_connection_get_settings(connection, &n_settings);
|
settings = _nm_connection_get_settings_arr(connection);
|
||||||
for (i = 0; i < n_settings; i++) {
|
for (i = 0; i < (int) _NM_META_SETTING_TYPE_NUM; i++) {
|
||||||
|
NMSetting * setting = settings[nm_meta_setting_types_by_priority[i]];
|
||||||
const NMSettInfoSetting *sett_info;
|
const NMSettInfoSetting *sett_info;
|
||||||
NMSetting * setting = settings[i];
|
|
||||||
const char * setting_name;
|
const char * setting_name;
|
||||||
const char * setting_alias;
|
const char * setting_alias;
|
||||||
|
|
||||||
|
if (!setting)
|
||||||
|
continue;
|
||||||
|
|
||||||
sett_info = _nm_setting_class_get_sett_info(NM_SETTING_GET_CLASS(setting));
|
sett_info = _nm_setting_class_get_sett_info(NM_SETTING_GET_CLASS(setting));
|
||||||
|
|
||||||
setting_name = sett_info->setting_class->setting_info->setting_name;
|
setting_name = sett_info->setting_class->setting_info->setting_name;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue