core: be strict about connection argument in D-Bus methods
authorThomas Haller <thaller@redhat.com>
Wed, 23 Mar 2016 14:58:53 +0000 (15:58 +0100)
committerThomas Haller <thaller@redhat.com>
Tue, 29 Mar 2016 09:56:26 +0000 (11:56 +0200)
There is no excuse for clients to send connections to NetworkManager
that have invalid/unknown fields. Just reject them.

This is a dangerous change, because we might now reject connections
that we were accepting previously. Who know what clients were sending
and it used to work.

src/settings/nm-settings-connection.c
src/settings/nm-settings.c

index bce3dff..6bed3fe 100644 (file)
@@ -1736,7 +1736,8 @@ settings_connection_update_helper (NMSettingsConnection *self,
        /* Check if the settings are valid first */
        if (new_settings) {
                tmp = _nm_simple_connection_new_from_dbus (new_settings,
-                                                          NM_SETTING_PARSE_FLAGS_NORMALIZE,
+                                                            NM_SETTING_PARSE_FLAGS_STRICT
+                                                          | NM_SETTING_PARSE_FLAGS_NORMALIZE,
                                                           &error);
                if (!tmp)
                        goto error;
index fc2daa0..77e45f4 100644 (file)
@@ -1408,7 +1408,8 @@ impl_settings_add_connection_helper (NMSettings *self,
        GError *error = NULL;
 
        connection = _nm_simple_connection_new_from_dbus (settings,
-                                                         NM_SETTING_PARSE_FLAGS_NORMALIZE,
+                                                           NM_SETTING_PARSE_FLAGS_STRICT
+                                                         | NM_SETTING_PARSE_FLAGS_NORMALIZE,
                                                          &error);
 
        if (connection) {