diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c index 6024202f92..0f8fcb8a00 100644 --- a/src/settings/plugins/ifcfg-rh/plugin.c +++ b/src/settings/plugins/ifcfg-rh/plugin.c @@ -136,7 +136,10 @@ _internal_new_connection (SCPluginIfcfg *self, PLUGIN_PRINT (IFCFG_PLUGIN_NAME, " error: %s", (local && local->message) ? local->message : "(unknown)"); } - g_propagate_error (error, local); + if (local) + g_propagate_error (error, local); + else + g_set_error (error, IFCFG_PLUGIN_ERROR, 0, "(unknown)"); return NULL; } diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index 41055a2d2e..82d2af26c2 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -4193,6 +4193,7 @@ bond_connection_from_ifcfg (const char *file, return connection; } +/* Check 'error' for errors. Missing config (NULL return value) is a valid case. */ static char * read_team_config (shvarFile *ifcfg, const char *key, GError **error) { @@ -4225,6 +4226,7 @@ make_team_setting (shvarFile *ifcfg, { NMSettingTeam *s_team; char *value; + GError *local_err = NULL; s_team = NM_SETTING_TEAM (nm_setting_team_new ()); @@ -4237,9 +4239,11 @@ make_team_setting (shvarFile *ifcfg, g_object_set (s_team, NM_SETTING_TEAM_INTERFACE_NAME, value, NULL); g_free (value); - value = read_team_config (ifcfg, "TEAM_CONFIG", error); - if (!value) + value = read_team_config (ifcfg, "TEAM_CONFIG", &local_err); + if (local_err) { + g_propagate_error (error, local_err); goto error; + } g_object_set (s_team, NM_SETTING_TEAM_CONFIG, value, NULL); g_free (value);