merge: fix all defects found by coverity (bgo #741122)

https://bugzilla.gnome.org/show_bug.cgi?id=741122
This commit is contained in:
Jiří Klimeš 2014-12-15 16:36:14 +01:00
commit fa94aaf3a5
12 changed files with 79 additions and 51 deletions

View file

@ -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);

View file

@ -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);
}

View file

@ -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__

View file

@ -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)) {

View file

@ -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;

View file

@ -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));
}
/******************************************************************************/

View file

@ -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;
}

View file

@ -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)) {

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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)...");