summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-06-02 14:00:46 +0200
committerThomas Haller <thaller@redhat.com>2021-06-04 09:29:24 +0200
commit92136135adb60cd79e83d5c5bb210026567b45f2 (patch)
tree5b5a6876b73d6d679d075bf77eee8f78fca2f637
parent46533cd15f7adde9602d39f3509894c17d94fba5 (diff)
downloadNetworkManager-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.c6
-rw-r--r--src/libnm-core-impl/nm-setting-match.c24
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);