diff options
author | Thomas Haller <thaller@redhat.com> | 2021-06-02 14:00:46 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-06-04 09:29:24 +0200 |
commit | 92136135adb60cd79e83d5c5bb210026567b45f2 (patch) | |
tree | 5b5a6876b73d6d679d075bf77eee8f78fca2f637 | |
parent | 46533cd15f7adde9602d39f3509894c17d94fba5 (diff) | |
download | NetworkManager-92136135adb60cd79e83d5c5bb210026567b45f2.tar.gz |
libnm: don't reject empty strings in add/remove API
For example for NM_SETTING_CONNECTION_SECONDARIES, the user can set
the GObject property to a string list that includes empty strings.
The C accessors (add/remove-by-value) should also accept any strings that
are accepted otherwise. Asserting against empty strings is wrong. If the
setting wants to reject empty strings, then it should use verify().
-rw-r--r-- | src/libnm-core-impl/nm-setting-connection.c | 6 | ||||
-rw-r--r-- | src/libnm-core-impl/nm-setting-match.c | 24 |
2 files changed, 10 insertions, 20 deletions
diff --git a/src/libnm-core-impl/nm-setting-connection.c b/src/libnm-core-impl/nm-setting-connection.c index 8693c85363..da605faf80 100644 --- a/src/libnm-core-impl/nm-setting-connection.c +++ b/src/libnm-core-impl/nm-setting-connection.c @@ -809,8 +809,7 @@ nm_setting_connection_add_secondary(NMSettingConnection *setting, const char *se GSList * iter; g_return_val_if_fail(NM_IS_SETTING_CONNECTION(setting), FALSE); - g_return_val_if_fail(sec_uuid != NULL, FALSE); - g_return_val_if_fail(sec_uuid[0] != '\0', FALSE); + g_return_val_if_fail(sec_uuid, FALSE); priv = NM_SETTING_CONNECTION_GET_PRIVATE(setting); for (iter = priv->secondaries; iter; iter = g_slist_next(iter)) { @@ -863,8 +862,7 @@ nm_setting_connection_remove_secondary_by_value(NMSettingConnection *setting, co GSList * iter; g_return_val_if_fail(NM_IS_SETTING_CONNECTION(setting), FALSE); - g_return_val_if_fail(sec_uuid != NULL, FALSE); - g_return_val_if_fail(sec_uuid[0] != '\0', FALSE); + g_return_val_if_fail(sec_uuid, FALSE); priv = NM_SETTING_CONNECTION_GET_PRIVATE(setting); for (iter = priv->secondaries; iter; iter = g_slist_next(iter)) { diff --git a/src/libnm-core-impl/nm-setting-match.c b/src/libnm-core-impl/nm-setting-match.c index 9a0774db81..e4f7c1a810 100644 --- a/src/libnm-core-impl/nm-setting-match.c +++ b/src/libnm-core-impl/nm-setting-match.c @@ -96,8 +96,7 @@ void nm_setting_match_add_interface_name(NMSettingMatch *setting, const char *interface_name) { g_return_if_fail(NM_IS_SETTING_MATCH(setting)); - g_return_if_fail(interface_name != NULL); - g_return_if_fail(interface_name[0] != '\0'); + g_return_if_fail(interface_name); nm_strvarray_add(nm_strvarray_ensure(&setting->interface_name), interface_name); _notify(setting, PROP_INTERFACE_NAME); @@ -138,8 +137,7 @@ gboolean nm_setting_match_remove_interface_name_by_value(NMSettingMatch *setting, const char *interface_name) { g_return_val_if_fail(NM_IS_SETTING_MATCH(setting), FALSE); - g_return_val_if_fail(interface_name != NULL, FALSE); - g_return_val_if_fail(interface_name[0] != '\0', FALSE); + g_return_val_if_fail(interface_name, FALSE); if (nm_strvarray_remove_first(setting->interface_name, interface_name)) { _notify(setting, PROP_INTERFACE_NAME); @@ -241,8 +239,7 @@ void nm_setting_match_add_kernel_command_line(NMSettingMatch *setting, const char *kernel_command_line) { g_return_if_fail(NM_IS_SETTING_MATCH(setting)); - g_return_if_fail(kernel_command_line != NULL); - g_return_if_fail(kernel_command_line[0] != '\0'); + g_return_if_fail(kernel_command_line); nm_strvarray_add(nm_strvarray_ensure(&setting->kernel_command_line), kernel_command_line); _notify(setting, PROP_KERNEL_COMMAND_LINE); @@ -284,8 +281,7 @@ nm_setting_match_remove_kernel_command_line_by_value(NMSettingMatch *setting, const char * kernel_command_line) { g_return_val_if_fail(NM_IS_SETTING_MATCH(setting), FALSE); - g_return_val_if_fail(kernel_command_line != NULL, FALSE); - g_return_val_if_fail(kernel_command_line[0] != '\0', FALSE); + g_return_val_if_fail(kernel_command_line, FALSE); if (nm_strvarray_remove_first(setting->kernel_command_line, kernel_command_line)) { _notify(setting, PROP_KERNEL_COMMAND_LINE); @@ -383,8 +379,7 @@ void nm_setting_match_add_driver(NMSettingMatch *setting, const char *driver) { g_return_if_fail(NM_IS_SETTING_MATCH(setting)); - g_return_if_fail(driver != NULL); - g_return_if_fail(driver[0] != '\0'); + g_return_if_fail(driver); nm_strvarray_add(nm_strvarray_ensure(&setting->driver), driver); _notify(setting, PROP_DRIVER); @@ -425,8 +420,7 @@ gboolean nm_setting_match_remove_driver_by_value(NMSettingMatch *setting, const char *driver) { g_return_val_if_fail(NM_IS_SETTING_MATCH(setting), FALSE); - g_return_val_if_fail(driver != NULL, FALSE); - g_return_val_if_fail(driver[0] != '\0', FALSE); + g_return_val_if_fail(driver, FALSE); if (nm_strvarray_remove_first(setting->driver, driver)) { _notify(setting, PROP_DRIVER); @@ -524,8 +518,7 @@ void nm_setting_match_add_path(NMSettingMatch *setting, const char *path) { g_return_if_fail(NM_IS_SETTING_MATCH(setting)); - g_return_if_fail(path != NULL); - g_return_if_fail(path[0] != '\0'); + g_return_if_fail(path); nm_strvarray_add(nm_strvarray_ensure(&setting->path), path); _notify(setting, PROP_PATH); @@ -566,8 +559,7 @@ gboolean nm_setting_match_remove_path_by_value(NMSettingMatch *setting, const char *path) { g_return_val_if_fail(NM_IS_SETTING_MATCH(setting), FALSE); - g_return_val_if_fail(path != NULL, FALSE); - g_return_val_if_fail(path[0] != '\0', FALSE); + g_return_val_if_fail(path, FALSE); if (nm_strvarray_remove_first(setting->path, path)) { _notify(setting, PROP_PATH); |