summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2014-12-15 16:36:14 +0100
committerJiří Klimeš <jklimes@redhat.com>2014-12-15 16:36:14 +0100
commitfa94aaf3a52887c0d225ccf32a689cdaa40feeec (patch)
treede086c73309cfd0c2b9bcc33aaa6d8d82b57ff00
parent471375a3e1007f43d65149c966415d5055daf9da (diff)
parent5252287209f77cd43b5158d4657aea81414069c4 (diff)
downloadNetworkManager-fa94aaf3a52887c0d225ccf32a689cdaa40feeec.tar.gz
merge: fix all defects found by coverity (bgo #741122)
https://bugzilla.gnome.org/show_bug.cgi?id=741122
-rw-r--r--clients/cli/connections.c2
-rw-r--r--clients/cli/utils.c11
-rw-r--r--include/nm-test-utils.h33
-rw-r--r--libnm-core/nm-setting-vlan.c3
-rw-r--r--libnm-core/nm-utils.c4
-rw-r--r--libnm-core/tests/test-general.c44
-rw-r--r--libnm-glib/tests/test-nm-client.c4
-rw-r--r--libnm-util/nm-setting-vlan.c3
-rw-r--r--libnm/tests/test-nm-client.c2
-rw-r--r--src/devices/nm-device.c12
-rw-r--r--src/settings/plugins/ifcfg-rh/plugin.c6
-rw-r--r--src/tests/test-general-with-expect.c6
12 files changed, 79 insertions, 51 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 6a532b5852..5de9cc9d13 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -5256,6 +5256,7 @@ cleanup_olpc:
add_ip4_address_to_connection (ip4addr, connection);
}
+ /* coverity[dead_error_begin] */
if (gw4) {
NMSettingIPConfig *s_ip = nm_connection_get_setting_ip4_config (connection);
@@ -5288,6 +5289,7 @@ cleanup_olpc:
add_ip6_address_to_connection (ip6addr, connection);
}
+ /* coverity[dead_error_begin] */
if (gw6) {
NMSettingIPConfig *s_ip = nm_connection_get_setting_ip6_config (connection);
diff --git a/clients/cli/utils.c b/clients/cli/utils.c
index cb8fbf018a..60cf9f93f5 100644
--- a/clients/cli/utils.c
+++ b/clients/cli/utils.c
@@ -510,13 +510,10 @@ nmc_string_is_valid (const char *input, const char **allowed, GError **error)
finish:
if (ret == NULL) {
char *valid_vals = g_strjoinv (", ", (char **) allowed);
- if (!input || !*input) {
- g_set_error (error, 1, 0, _("missing name, try one of [%s]"),
- valid_vals);
- } else {
- g_set_error (error, 1, 0, _("'%s' not among [%s]"),
- input ? input : "", valid_vals);
- }
+ if (!input || !*input)
+ g_set_error (error, 1, 0, _("missing name, try one of [%s]"), valid_vals);
+ else
+ g_set_error (error, 1, 0, _("'%s' not among [%s]"), input, valid_vals);
g_free (valid_vals);
}
diff --git a/include/nm-test-utils.h b/include/nm-test-utils.h
index 44a81bbe51..dcfa46eba3 100644
--- a/include/nm-test-utils.h
+++ b/include/nm-test-utils.h
@@ -945,6 +945,39 @@ nmtst_assert_connection_unnormalizable (NMConnection *con,
g_clear_error (&error);
}
+inline static void
+nmtst_assert_setting_verifies (NMSetting *setting)
+{
+ /* assert that the setting verifies without an error */
+
+ GError *error = NULL;
+ gboolean success;
+
+ g_assert (NM_IS_SETTING (setting));
+
+ success = nm_setting_verify (setting, NULL, &error);
+ g_assert_no_error (error);
+ g_assert (success);
+}
+
+inline static void
+nmtst_assert_setting_verify_fails (NMSetting *setting,
+ GQuark expect_error_domain,
+ gint expect_error_code)
+{
+ /* assert that the setting verification fails */
+
+ GError *error = NULL;
+ gboolean success;
+
+ g_assert (NM_IS_SETTING (setting));
+
+ success = nm_setting_verify (setting, NULL, &error);
+ nmtst_assert_error (error, expect_error_domain, expect_error_code, NULL);
+ g_assert (!success);
+ g_clear_error (&error);
+}
+
#endif
#ifdef __NM_UTILS_H__
diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c
index 7b7ad91cf6..f622ddcbfd 100644
--- a/libnm-core/nm-setting-vlan.c
+++ b/libnm-core/nm-setting-vlan.c
@@ -223,7 +223,8 @@ nm_setting_vlan_add_priority_str (NMSettingVlan *setting,
list = get_map (setting, map);
item = priority_map_new_from_str (map, str);
- g_return_val_if_fail (item != NULL, FALSE);
+ if (!item)
+ g_return_val_if_reached (FALSE);
/* Duplicates get replaced */
for (iter = list; iter; iter = g_slist_next (iter)) {
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index 0f85e52a0e..4b284cfefd 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -2054,7 +2054,9 @@ nm_utils_rsa_key_encrypt (const guint8 *data,
goto out;
key = crypto_make_des_aes_key (CIPHER_DES_EDE3_CBC, &salt[0], salt_len, in_password, &key_len, NULL);
- g_return_val_if_fail (key, NULL);
+ if (!key)
+ g_return_val_if_reached (NULL);
+
enc = crypto_encrypt (CIPHER_DES_EDE3_CBC, data, len, salt, salt_len, key, key_len, &enc_len, error);
if (!enc)
goto out;
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c
index 46d58ca3d9..44dc277d16 100644
--- a/libnm-core/tests/test-general.c
+++ b/libnm-core/tests/test-general.c
@@ -345,8 +345,7 @@ test_setting_ip4_config_labels (void)
nm_setting_ip_config_add_address (s_ip4, addr);
nm_ip_address_unref (addr);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
addr = nm_setting_ip_config_get_address (s_ip4, 0);
label = nm_ip_address_get_attribute (addr, "label");
@@ -378,8 +377,7 @@ test_setting_ip4_config_labels (void)
nm_setting_ip_config_add_address (s_ip4, addr);
nm_ip_address_unref (addr);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
addr = nm_setting_ip_config_get_address (s_ip4, 1);
label = nm_ip_address_get_attribute (addr, "label");
@@ -393,8 +391,7 @@ test_setting_ip4_config_labels (void)
nm_setting_ip_config_add_address (s_ip4, addr);
nm_ip_address_unref (addr);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
addr = nm_setting_ip_config_get_address (s_ip4, 2);
label = nm_ip_address_get_attribute (addr, "label");
@@ -402,8 +399,7 @@ test_setting_ip4_config_labels (void)
/* Remove addr 1 and re-verify remaining addresses */
nm_setting_ip_config_remove_address (s_ip4, 0);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
addr = nm_setting_ip_config_get_address (s_ip4, 0);
g_assert_cmpstr (nm_ip_address_get_address (addr), ==, "2.2.2.2");
@@ -514,8 +510,7 @@ test_setting_ip4_config_labels (void)
NM_SETTING_IP_CONFIG_ADDRESSES, addrs,
NULL);
g_ptr_array_unref (addrs);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
g_assert_cmpint (nm_setting_ip_config_get_num_addresses (s_ip4), ==, 2);
addr = nm_setting_ip_config_get_address (s_ip4, 0);
@@ -555,8 +550,7 @@ test_setting_ip4_config_address_data (void)
nm_setting_ip_config_add_address (s_ip4, addr);
nm_ip_address_unref (addr);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
/* addr 2 */
addr = nm_ip_address_new (AF_INET, "2.2.2.2", 24, &error);
@@ -564,8 +558,7 @@ test_setting_ip4_config_address_data (void)
nm_setting_ip_config_add_address (s_ip4, addr);
nm_ip_address_unref (addr);
- nm_setting_verify (NM_SETTING (s_ip4), NULL, &error);
- g_assert_no_error (error);
+ nmtst_assert_setting_verifies (NM_SETTING (s_ip4));
/* The client-side D-Bus serialization should include the attributes in
* "address-data", and should not have an "addresses" property.
@@ -722,8 +715,6 @@ static void
test_setting_gsm_apn_underscore (void)
{
NMSettingGsm *s_gsm;
- GError *error = NULL;
- gboolean success;
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
g_assert (s_gsm);
@@ -732,30 +723,23 @@ test_setting_gsm_apn_underscore (void)
/* 65-character long */
g_object_set (s_gsm, NM_SETTING_GSM_APN, "foobar_baz", NULL);
- success = nm_setting_verify (NM_SETTING (s_gsm), NULL, &error);
- g_assert_no_error (error);
- g_assert (success == TRUE);
+ nmtst_assert_setting_verifies (NM_SETTING (s_gsm));
}
static void
test_setting_gsm_without_number (void)
{
NMSettingGsm *s_gsm;
- GError *error = NULL;
- gboolean success;
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
g_assert (s_gsm);
g_object_set (s_gsm, NM_SETTING_GSM_NUMBER, NULL, NULL);
- success = nm_setting_verify (NM_SETTING (s_gsm), NULL, &error);
- g_assert_no_error (error);
- g_assert (success == TRUE);
+ nmtst_assert_setting_verifies (NM_SETTING (s_gsm));
g_object_set (s_gsm, NM_SETTING_GSM_NUMBER, "", NULL);
- success = nm_setting_verify (NM_SETTING (s_gsm), NULL, &error);
- g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY);
- g_error_free (error);
+ nmtst_assert_setting_verify_fails (NM_SETTING (s_gsm), NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_INVALID_PROPERTY);
}
static NMSettingWirelessSecurity *
@@ -3009,9 +2993,7 @@ test_setting_802_1x_changed_signal (void)
static void
test_setting_old_uuid (void)
{
- GError *error = NULL;
NMSetting *setting;
- gboolean success;
/* NetworkManager-0.9.4.0 generated 40-character UUIDs with no dashes,
* like this one. Test that we maintain compatibility. */
@@ -3024,9 +3006,7 @@ test_setting_old_uuid (void)
NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
NULL);
- success = nm_setting_verify (NM_SETTING (setting), NULL, &error);
- g_assert_no_error (error);
- g_assert (success == TRUE);
+ nmtst_assert_setting_verifies (NM_SETTING (setting));
}
/******************************************************************************/
diff --git a/libnm-glib/tests/test-nm-client.c b/libnm-glib/tests/test-nm-client.c
index 989c097667..af3722eba4 100644
--- a/libnm-glib/tests/test-nm-client.c
+++ b/libnm-glib/tests/test-nm-client.c
@@ -48,6 +48,7 @@ test_client_new (void)
NMClient *client;
DBusGConnection *bus;
GError *error = NULL;
+ gboolean success;
bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
g_assert_no_error (error);
@@ -60,8 +61,9 @@ test_client_new (void)
dbus_g_connection_unref (bus);
- g_initable_init (G_INITABLE (client), NULL, &error);
+ success = g_initable_init (G_INITABLE (client), NULL, &error);
g_assert_no_error (error);
+ g_assert (success == TRUE);
return client;
}
diff --git a/libnm-util/nm-setting-vlan.c b/libnm-util/nm-setting-vlan.c
index f009629242..43b6a91c13 100644
--- a/libnm-util/nm-setting-vlan.c
+++ b/libnm-util/nm-setting-vlan.c
@@ -260,7 +260,8 @@ nm_setting_vlan_add_priority_str (NMSettingVlan *setting,
list = get_map (setting, map);
item = priority_map_new_from_str (map, str);
- g_return_val_if_fail (item != NULL, FALSE);
+ if (!item)
+ g_return_val_if_reached (FALSE);
/* Duplicates get replaced */
for (iter = list; iter; iter = g_slist_next (iter)) {
diff --git a/libnm/tests/test-nm-client.c b/libnm/tests/test-nm-client.c
index 48b16b4690..3541c741e1 100644
--- a/libnm/tests/test-nm-client.c
+++ b/libnm/tests/test-nm-client.c
@@ -90,6 +90,7 @@ test_device_added (void)
/* Tell the test service to add a new device */
nm_test_service_add_device (sinfo, client, "AddWiredDevice", "eth0");
+ /* coverity[loop_condition] */
while (!notified)
g_main_context_iteration (NULL, TRUE);
@@ -188,6 +189,7 @@ test_device_added_signal_after_init (void)
/* Ensure the 'device-added' signal doesn't show up before
* the 'Devices' property change notification */
+ /* coverity[loop_condition] */
while (!(result & SIGNAL_MASK) && !(result & NOTIFY_MASK))
g_main_context_iteration (NULL, TRUE);
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index cd548d260e..c04a973877 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -5037,16 +5037,18 @@ send_arps (NMDevice *self, const char *mode_arg)
for (i = 0; i < num; i++) {
gs_free char *tmp_str = NULL;
+ gboolean success;
+
addr = nm_setting_ip_config_get_address (s_ip4, i);
argv[ip_arg] = nm_ip_address_get_address (addr);
_LOGD (LOGD_DEVICE | LOGD_IP4,
"arping: run %s", (tmp_str = g_strjoinv (" ", (char **) argv)));
- g_spawn_async (NULL, (char **) argv, NULL,
- G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
- nm_unblock_posix_signals,
- NULL, NULL, &error);
- if (error) {
+ success = g_spawn_async (NULL, (char **) argv, NULL,
+ G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
+ nm_unblock_posix_signals,
+ NULL, NULL, &error);
+ if (!success) {
_LOGW (LOGD_DEVICE | LOGD_IP4,
"arping: could not send ARP for local address %s: %s",
argv[ip_arg], error->message);
diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c
index 2f47845276..2dced56b49 100644
--- a/src/settings/plugins/ifcfg-rh/plugin.c
+++ b/src/settings/plugins/ifcfg-rh/plugin.c
@@ -671,10 +671,12 @@ plugin_set_hostname (SCPluginIfcfg *plugin, const char *hostname)
#if HAVE_SELINUX
security_context_t se_ctx_prev = NULL, se_ctx = NULL;
struct stat file_stat = { .st_mode = 0 };
+ mode_t st_mode = 0;
/* Get default context for HOSTNAME_FILE and set it for fscreate */
- stat (HOSTNAME_FILE, &file_stat);
- matchpathcon (HOSTNAME_FILE, file_stat.st_mode, &se_ctx);
+ if (stat (HOSTNAME_FILE, &file_stat) == 0)
+ st_mode = file_stat.st_mode;
+ matchpathcon (HOSTNAME_FILE, st_mode, &se_ctx);
matchpathcon_fini ();
getfscreatecon (&se_ctx_prev);
setfscreatecon (se_ctx);
diff --git a/src/tests/test-general-with-expect.c b/src/tests/test-general-with-expect.c
index bee266f343..f5010dae4a 100644
--- a/src/tests/test-general-with-expect.c
+++ b/src/tests/test-general-with-expect.c
@@ -137,7 +137,10 @@ test_nm_utils_kill_child_create_and_join_pgroup (void)
g_assert (err == 0);
pgid = fork();
- g_assert (pgid >= 0);
+ if (pgid < 0) {
+ g_assert_not_reached ();
+ return pgid;
+ }
if (pgid == 0) {
/* child process... */
@@ -299,6 +302,7 @@ test_nm_utils_kill_child (void)
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_WARNING, "*kill child process 'test-a-3-0' (*): unexpected error sending Unexpected signal: Invalid argument (22)");
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-3-0' (*): invoke callback: killing child failed");
+ /* coverity[negative_returns] */
test_nm_utils_kill_child_async_do ("test-a-3-0", pid3a, -1, 1000 / 2, FALSE, NULL);
g_test_expect_message ("NetworkManager", G_LOG_LEVEL_DEBUG, "*kill child process 'test-a-3-1' (*): wait for process to terminate after sending SIGTERM (15) (send SIGKILL in 500 milliseconds)...");