libnm: avoid cloning buffer for nm_connection_get_settings() in nm_keyfile_write()

This commit is contained in:
Thomas Haller 2021-06-14 09:09:07 +02:00
parent 5aef93355f
commit b0f4bb84bf
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -4083,10 +4083,9 @@ nm_keyfile_write(NMConnection * connection,
nm_auto_unref_keyfile GKeyFile *keyfile = NULL;
GError * local = NULL;
KeyfileWriterInfo info;
gs_free NMSetting **settings = NULL;
guint n_settings = 0;
guint i;
guint j;
NMSetting ** settings;
int i;
guint j;
g_return_val_if_fail(NM_IS_CONNECTION(connection), NULL);
g_return_val_if_fail(!error || !*error, NULL);
@ -4124,13 +4123,16 @@ nm_keyfile_write(NMConnection * connection,
.user_data = user_data,
};
settings = nm_connection_get_settings(connection, &n_settings);
for (i = 0; i < n_settings; i++) {
settings = _nm_connection_get_settings_arr(connection);
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;
NMSetting * setting = settings[i];
const char * setting_name;
const char * setting_alias;
if (!setting)
continue;
sett_info = _nm_setting_class_get_sett_info(NM_SETTING_GET_CLASS(setting));
setting_name = sett_info->setting_class->setting_info->setting_name;