diff options
author | Milan Crha <mcrha@redhat.com> | 2013-11-15 16:06:57 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2013-11-15 16:06:57 +0800 |
commit | 570c6374806d0f1ec59cf7a72543efe6b5b637be (patch) | |
tree | c5390b1fcb73f30c28bf37168add9bf1dc622b42 | |
parent | 1be51f232560f864ba8795a38e55d472b5b0e2b3 (diff) | |
download | gsoc2013-evolution-570c6374806d0f1ec59cf7a72543efe6b5b637be.tar.gz gsoc2013-evolution-570c6374806d0f1ec59cf7a72543efe6b5b637be.tar.zst gsoc2013-evolution-570c6374806d0f1ec59cf7a72543efe6b5b637be.zip |
Fix/mute issues found by Coverity scan
This makes the code free of Coverity scan issues.
It is sometimes quite pedantic and expects/suggests some
coding habits, thus certain changes may look weird, but for a good
thing, I hope. The code is also tagged with Coverity scan
suppressions, to keep the code as is and hide the warning too.
Also note that Coverity treats g_return_if_fail(), g_assert() and
similar macros as unreliable, and it's true these can be disabled
during the compile time, thus it brings in other set of 'weird'
changes.
93 files changed, 659 insertions, 637 deletions
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 1a771fe98b..27c0f5b5c2 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -433,6 +433,7 @@ style_makes_sense (const EContactName *name, else return FALSE; } + return FALSE; case 3: if (company && *company) return TRUE; @@ -1125,7 +1126,7 @@ extract_email (EContactEditor *editor) { GList *attr_list = NULL; GList *old_attr_list; - GList *l, *l_next; + GList *ll; gint i; for (i = 1; i <= EMAIL_SLOTS; i++) { @@ -1157,14 +1158,12 @@ extract_email (EContactEditor *editor) /* Splice in the old attributes, minus the EMAIL_SLOTS first */ old_attr_list = e_contact_get_attributes (editor->contact, E_CONTACT_EMAIL); - for (l = old_attr_list, i = 1; l && i <= EMAIL_SLOTS; l = l_next, i++) { - l_next = g_list_next (l); - - e_vcard_attribute_free (l->data); - l = g_list_delete_link (l, l); + for (ll = old_attr_list, i = 1; ll && i <= EMAIL_SLOTS; i++) { + e_vcard_attribute_free (ll->data); + ll = g_list_delete_link (ll, ll); } - old_attr_list = l; + old_attr_list = ll; attr_list = g_list_concat (attr_list, old_attr_list); e_contact_set_attributes (editor->contact, E_CONTACT_EMAIL, attr_list); @@ -1468,7 +1467,7 @@ extract_phone (EContactEditor *editor) { GList *attr_list = NULL; GList *old_attr_list; - GList *l, *l_next; + GList *ll; gint i; for (i = 1; i <= PHONE_SLOTS; i++) { @@ -1509,14 +1508,12 @@ extract_phone (EContactEditor *editor) /* Splice in the old attributes, minus the PHONE_SLOTS first */ old_attr_list = get_attributes_named (E_VCARD (editor->contact), "TEL"); - for (l = old_attr_list, i = 1; l && i <= PHONE_SLOTS; l = l_next, i++) { - l_next = g_list_next (l); - - e_vcard_attribute_free (l->data); - l = g_list_delete_link (l, l); + for (ll = old_attr_list, i = 1; ll && i <= PHONE_SLOTS; i++) { + e_vcard_attribute_free (ll->data); + ll = g_list_delete_link (ll, ll); } - old_attr_list = l; + old_attr_list = ll; attr_list = g_list_concat (attr_list, old_attr_list); set_attributes_named (E_VCARD (editor->contact), "TEL", attr_list); @@ -1913,7 +1910,7 @@ extract_im (EContactEditor *editor) for (i = 0; i < G_N_ELEMENTS (im_service); i++) { GList *old_service_attr_list; gint filled_in_slots; - GList *l, *l_next; + GList *ll; gint j; /* Splice in the old attributes, minus the filled_in_slots first */ @@ -1925,15 +1922,14 @@ extract_im (EContactEditor *editor) g_list_length (old_service_attr_list)); remaining_slots -= filled_in_slots; - for (l = old_service_attr_list, j = 0; - l && j < filled_in_slots; l = l_next, j++) { - l_next = g_list_next (l); + for (ll = old_service_attr_list, j = 0; + ll && j < filled_in_slots; j++) { - e_vcard_attribute_free (l->data); - l = g_list_delete_link (l, l); + e_vcard_attribute_free (ll->data); + ll = g_list_delete_link (ll, ll); } - old_service_attr_list = l; + old_service_attr_list = ll; service_attr_list[i] = g_list_concat ( service_attr_list[i], old_service_attr_list); diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index 4bcaa9bbfb..8a5dbf087e 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -502,9 +502,9 @@ contact_list_editor_selection_changed_cb (GtkTreeSelection *selection, gtk_widget_set_sensitive (WIDGET (UP_BUTTON), FALSE); } - gtk_tree_model_get_iter (model, &iter, g_list_last (selected)->data); /* Item below last selected exists => enable Down/Bottom buttons */ - if (gtk_tree_model_iter_next (model, &iter)) { + if (gtk_tree_model_get_iter (model, &iter, g_list_last (selected)->data) && + gtk_tree_model_iter_next (model, &iter)) { gtk_widget_set_sensitive (WIDGET (DOWN_BUTTON), TRUE); gtk_widget_set_sensitive (WIDGET (BOTTOM_BUTTON), TRUE); } else { @@ -888,9 +888,11 @@ contact_list_editor_remove_button_clicked_cb (GtkWidget *widget) path = gtk_tree_row_reference_get_path (reference); valid = gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); - g_assert (valid); - - e_contact_list_model_remove_row (E_CONTACT_LIST_MODEL (model), &iter); + if (valid) { + e_contact_list_model_remove_row (E_CONTACT_LIST_MODEL (model), &iter); + } else { + g_warn_if_reached (); + } gtk_tree_row_reference_free (reference); } @@ -967,7 +969,9 @@ contact_list_editor_select_button_clicked_cb (GtkWidget *widget) for (iter = list; iter != NULL; iter = iter->next) { EDestination *destination = iter->data; - contact_list_editor_add_destination (widget, destination); + if (!contact_list_editor_add_destination (widget, destination)) + g_warning ("%s: Failed to add destination", G_STRFUNC); + e_destination_store_remove_destination (store, destination); } @@ -1066,9 +1070,9 @@ contact_list_editor_top_button_clicked_cb (GtkButton *button) for (l = references; l; l = l->next) { path = gtk_tree_row_reference_get_path (l->data); - gtk_tree_model_get_iter (model, &iter, path); - gtk_tree_store_move_after ( - GTK_TREE_STORE (model), &iter, NULL); + if (gtk_tree_model_get_iter (model, &iter, path)) + gtk_tree_store_move_after ( + GTK_TREE_STORE (model), &iter, NULL); gtk_tree_path_free (path); } @@ -1105,16 +1109,19 @@ contact_list_editor_up_button_clicked_cb (GtkButton *button) /* Get iter of item above the first selected item */ path = gtk_tree_path_copy (selected->data); gtk_tree_path_prev (path); - gtk_tree_model_get_iter (model, &iter, path); + if (!gtk_tree_model_get_iter (model, &iter, path)) { + gtk_tree_path_free (path); + g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); + return; + } gtk_tree_path_free (path); /* Get iter of the last selected item */ - gtk_tree_model_get_iter (model, &iter2, g_list_last (selected)->data); + if (gtk_tree_model_get_iter (model, &iter2, g_list_last (selected)->data)) { + gtk_tree_store_move_after (GTK_TREE_STORE (model), &iter, &iter2); + } - gtk_tree_store_move_after (GTK_TREE_STORE (model), &iter, &iter2); - - g_list_foreach (selected, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected); + g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); contact_list_editor_selection_changed_cb (selection, editor); } @@ -1141,16 +1148,21 @@ contact_list_editor_down_button_clicked_cb (GtkButton *button) selected = gtk_tree_selection_get_selected_rows (selection, &model); /* Iter of the first selected item */ - gtk_tree_model_get_iter (model, &iter, selected->data); + if (!gtk_tree_model_get_iter (model, &iter, selected->data)) { + g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); + return; + } /* Iter of item below the last selected item */ - gtk_tree_model_get_iter (model, &iter2, g_list_last (selected)->data); - gtk_tree_model_iter_next (model, &iter2); + if (!gtk_tree_model_get_iter (model, &iter2, g_list_last (selected)->data) || + !gtk_tree_model_iter_next (model, &iter2)) { + g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); + return; + } gtk_tree_store_move_before (GTK_TREE_STORE (model), &iter2, &iter); - g_list_foreach (selected, (GFunc) gtk_tree_path_free, NULL); - g_list_free (selected); + g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free); contact_list_editor_selection_changed_cb (selection, editor); } @@ -1828,10 +1840,10 @@ save_contact_list (GtkTreeModel *model, g_free (uid); /* Set new_iter to first child of iter */ - gtk_tree_model_iter_children (model, &new_iter, iter); - - /* Go recursive */ - save_contact_list (model, &new_iter, attrs, parent_id); + if (gtk_tree_model_iter_children (model, &new_iter, iter)) { + /* Go recursive */ + save_contact_list (model, &new_iter, attrs, parent_id); + } } else { attr = e_vcard_attribute_new (NULL, EVC_EMAIL); e_destination_export_to_vcard_attribute (dest, attr); diff --git a/addressbook/printing/Makefile.am b/addressbook/printing/Makefile.am index c51eb14d3b..58f2ca12d2 100644 --- a/addressbook/printing/Makefile.am +++ b/addressbook/printing/Makefile.am @@ -29,27 +29,6 @@ libecontactprint_la_LIBADD = \ $(GNOME_PLATFORM_LIBS) \ $(GTKHTML_LIBS) -noinst_PROGRAMS = contact-print-test - -contact_print_test_CPPFLAGS = \ - $(AM_CPPFLAGS) \ - -DG_LOG_DOMAIN=\"addressbook-printing\" \ - -I$(top_srcdir)/addressbook \ - -I$(top_srcdir) \ - -DEVOLUTION_ECPSDIR=\""$(ecpsdir)"\" \ - $(EVOLUTION_DATA_SERVER_CFLAGS) \ - $(GNOME_PLATFORM_CFLAGS) - -contact_print_test_SOURCES = test-print.c - -contact_print_test_LDADD = \ - libecontactprint.la \ - $(top_builddir)/addressbook/util/libeabutil.la \ - $(top_builddir)/shell/libevolution-shell.la \ - $(top_builddir)/e-util/libevolution-util.la \ - $(EVOLUTION_DATA_SERVER_LIBS) \ - $(GNOME_PLATFORM_LIBS) - EXTRA_DIST = \ $(ecps_DATA) diff --git a/addressbook/printing/test-print.c b/addressbook/printing/test-print.c deleted file mode 100644 index 6f461959c3..0000000000 --- a/addressbook/printing/test-print.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> - * - * - * Authors: - * Chris Lahey <clahey@ximian.com> - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdlib.h> -#include <gtk/gtk.h> -#include "e-contact-print.h" - -gint -main (gint argc, - gchar *argv[]) -{ - GList *shown_fields = NULL; - - gtk_init (&argc, &argv); - - shown_fields = g_list_append (shown_fields, (gpointer) "First field"); - shown_fields = g_list_append (shown_fields, (gpointer) "Second field"); - shown_fields = g_list_append (shown_fields, (gpointer) "Third field"); - shown_fields = g_list_append (shown_fields, (gpointer) "Fourth field"); - - /* does nothing */ - e_contact_print (NULL, NULL, NULL, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG); - - gtk_main (); - - /* Not reached. */ - return 0; -} diff --git a/addressbook/tools/evolution-addressbook-export-list-folders.c b/addressbook/tools/evolution-addressbook-export-list-folders.c index 2ff9d790a4..538ea4f063 100644 --- a/addressbook/tools/evolution-addressbook-export-list-folders.c +++ b/addressbook/tools/evolution-addressbook-export-list-folders.c @@ -67,7 +67,7 @@ action_list_folders_init (ActionContext *p_actctx) client = e_book_client_connect_sync (source, NULL, &error); /* Sanity check. */ - g_return_if_fail ( + g_warn_if_fail ( ((client != NULL) && (error == NULL)) || ((client == NULL) && (error != NULL))); diff --git a/calendar/alarm-notify/alarm-notify-dialog.c b/calendar/alarm-notify/alarm-notify-dialog.c index ac6ce49d93..0eb0774f09 100644 --- a/calendar/alarm-notify/alarm-notify-dialog.c +++ b/calendar/alarm-notify/alarm-notify-dialog.c @@ -155,7 +155,10 @@ dialog_response_cb (GtkDialog *dialog, gtk_tree_model_get (treemodel, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); } - g_return_if_fail (funcinfo); + if (!funcinfo) { + g_warn_if_reached (); + return; + } switch (response_id) { case GTK_RESPONSE_CLOSE: @@ -178,7 +181,10 @@ edit_pressed_cb (GtkButton *button, if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); - g_return_if_fail (funcinfo); + if (!funcinfo) { + g_warn_if_reached (); + return; + } (* funcinfo->func) (ALARM_NOTIFY_EDIT, -1, funcinfo->func_data); } @@ -196,7 +202,10 @@ print_pressed_cb (GtkButton *button, if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); - g_return_if_fail (funcinfo); + if (!funcinfo) { + g_warn_if_reached (); + return; + } (* funcinfo->func) (ALARM_NOTIFY_PRINT, -1, funcinfo->func_data); } @@ -219,7 +228,10 @@ snooze_pressed_cb (GtkButton *button, if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); - g_return_if_fail (funcinfo); + if (!funcinfo) { + g_warn_if_reached (); + return; + } snooze_timeout = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (an->snooze_time_min)); snooze_timeout += 60 * (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (an->snooze_time_hrs))); @@ -248,7 +260,10 @@ dismiss_pressed_cb (GtkButton *button, if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); - g_return_if_fail (funcinfo); + if (!funcinfo) { + g_warn_if_reached (); + return; + } (* funcinfo->func) (ALARM_NOTIFY_DISMISS, -1, funcinfo->func_data); } diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index 0459e4797a..0c831de19c 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -329,6 +329,7 @@ get_attachment_list (CompEditor *editor) /* We can't return until we have results, so crank * the main loop until the callback gets triggered. */ + /* coverity[loop_condition] */ while (!status.done) gtk_main_iteration (); @@ -936,25 +937,21 @@ save_and_close_editor (CompEditor *editor, if (e_attachment_store_get_num_loading (store) > 0) { gboolean response = 1; - /*FIXME: Cannot use mail functions from calendar!!!! */ -#if 0 ECalComponentVType vtype = e_cal_component_get_vtype (editor->priv->comp); if (vtype == E_CAL_COMPONENT_EVENT) - response = em_utils_prompt_user ( - (GtkWindow *) widget, - NULL, + response = e_alert_run_dialog_for_args ( + GTK_WINDOW (editor), "calendar:ask-send-event-pending-download", NULL); else - response = em_utils_prompt_user ( - (GtkWindow *) widget, - NULL, + response = e_alert_run_dialog_for_args ( + GTK_WINDOW (editor), "calendar:ask-send-task-pending-download", NULL); -#endif - if (!response) - return; + + if (response != GTK_RESPONSE_YES) + return; } if (e_client_is_readonly (E_CLIENT (priv->cal_client))) { diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index f4d9658ccb..09cb8c880b 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -991,12 +991,14 @@ event_page_load_locations_list (CompEditorPage *page, } error = NULL; - g_file_get_contents (file_name, &contents, NULL, &error); - if (error != NULL) { - g_warning ( - "%s: Failed to load locations list: %s", - G_STRFUNC, error->message); - g_error_free (error); + if (!g_file_get_contents (file_name, &contents, NULL, &error)) { + if (error != NULL) { + g_warning ( + "%s: Failed to load locations list: %s", + G_STRFUNC, error->message); + g_error_free (error); + } + g_free (file_name); return; } diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c index 1fd9221a54..0e06d19316 100644 --- a/calendar/gui/dialogs/memo-page.c +++ b/calendar/gui/dialogs/memo-page.c @@ -605,12 +605,10 @@ fill_comp_with_recipients (ENameSelector *name_selector, for (l = list_dests; l; l = l->next) { EDestination *dest = l->data; - const gchar *attendee = NULL; + const gchar *attendee; - /* If we couldn't get the attendee prior, - * get the email address as the default. */ - if (attendee == NULL || *attendee == '\0') - attendee = e_destination_get_email (dest); + /* Get the email address as the default. */ + attendee = e_destination_get_email (dest); if (attendee == NULL || *attendee == '\0') continue; diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index 638bfafc71..7828868e54 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -837,8 +837,10 @@ simple_recur_to_comp (RecurrencePage *rpage, if (month_num == MONTH_NUM_LAST) month_num = -1; - else + else if (month_num != -1) month_num++; + else + g_warn_if_reached (); switch (month_day) { case MONTH_DAY_NTH: diff --git a/calendar/gui/e-cal-model-tasks.c b/calendar/gui/e-cal-model-tasks.c index c14371c090..d4315f1a6e 100644 --- a/calendar/gui/e-cal-model-tasks.c +++ b/calendar/gui/e-cal-model-tasks.c @@ -588,6 +588,9 @@ set_status (ECalModelComponent *comp_data, case ICAL_STATUS_COMPLETED: ensure_task_complete (comp_data, -1); break; + + /* to make compiler happy */ + /* coverity[dead_error_begin] */ default: break; } diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index 5748e23d78..a4f06efac5 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -2108,12 +2108,7 @@ e_cal_model_update_comp_time (ECalModel *model, /* If the TZID is set to "UTC", we don't want to save the TZID. */ if (tzid && strcmp (tzid, "UTC")) { - if (param) { - icalparameter_set_tzid (param, (gchar *) tzid); - } else { - param = icalparameter_new_tzid ((gchar *) tzid); - icalproperty_add_parameter (prop, param); - } + icalparameter_set_tzid (param, (gchar *) tzid); } else { icalproperty_remove_parameter (prop, ICAL_TZID_PARAMETER); } diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c index cdf167edd2..ef233f4a6f 100644 --- a/calendar/gui/e-day-view-main-item.c +++ b/calendar/gui/e-day-view-main-item.c @@ -1013,6 +1013,10 @@ day_view_main_item_draw (GnomeCanvasItem *canvas_item, g_return_if_fail (day_view != NULL); days_shown = e_day_view_get_days_shown (day_view); + if (days_shown <= 0) { + g_warn_if_reached (); + return; + } cal_view = E_CALENDAR_VIEW (day_view); time_divisions = e_calendar_view_get_time_divisions (cal_view); diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 93f66408d9..41fbc41ca1 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -1540,10 +1540,11 @@ day_view_focus (GtkWidget *widget, e_day_view_ensure_rows_visible ( day_view, start_row, end_row); + } else if (new_day != -1) { + e_day_view_start_editing_event ( + day_view, new_day, + new_event_num, NULL); } - e_day_view_start_editing_event ( - day_view, new_day, - new_event_num, NULL); return TRUE; } @@ -1771,6 +1772,8 @@ day_view_get_visible_time_range (ECalendarView *cal_view, return FALSE; days_shown = e_day_view_get_days_shown (day_view); + if (days_shown <= 0) + return FALSE; *start_time = day_view->day_starts[0]; *end_time = day_view->day_starts[days_shown]; @@ -3417,6 +3420,8 @@ e_day_view_recalc_day_starts (EDayView *day_view, GDate dt; days_shown = e_day_view_get_days_shown (day_view); + if (days_shown <= 0) + return; day_view->day_starts[0] = start_time; for (day = 1; day <= days_shown; day++) { @@ -4321,11 +4326,13 @@ e_day_view_on_long_event_click (EDayView *day_view, day_view->drag_event_x = event_x; day_view->drag_event_y = event_y; - e_day_view_convert_position_in_top_canvas ( + pos = e_day_view_convert_position_in_top_canvas ( day_view, event_x, event_y, &day, NULL); - day_view->drag_event_offset = day - start_day; + + if (pos != E_CALENDAR_VIEW_POS_NONE && pos != E_CALENDAR_VIEW_POS_OUTSIDE) + day_view->drag_event_offset = day - start_day; } } @@ -4428,13 +4435,16 @@ e_day_view_on_event_click (EDayView *day_view, day_view->drag_event_x = event_x; day_view->drag_event_y = event_y; - e_day_view_convert_position_in_main_canvas ( + pos = e_day_view_convert_position_in_main_canvas ( day_view, event_x, event_y, &tmp_day, &row, NULL); - start_row = event->start_minute / time_divisions; - day_view->drag_event_offset = row - start_row; + + if (pos != E_CALENDAR_VIEW_POS_NONE && pos != E_CALENDAR_VIEW_POS_OUTSIDE) { + start_row = event->start_minute / time_divisions; + day_view->drag_event_offset = row - start_row; + } } } @@ -6882,7 +6892,10 @@ cancel_editing (EDayView *day_view) day = day_view->editing_event_day; event_num = day_view->editing_event_num; - g_return_if_fail (day != -1); + if (day == -1) { + g_warn_if_reached (); + return; + } if (day == E_DAY_VIEW_LONG_EVENT) { if (!is_array_index_in_bounds (day_view->long_events, event_num)) @@ -7005,11 +7018,16 @@ e_day_view_on_text_item_event (GnomeCanvasItem *item, break; case GDK_BUTTON_RELEASE: - if (day_view->resize_event_num != -1) - day_view->resize_event_num = -1; + if (day_view->resize_event_num != -1) + day_view->resize_event_num = -1; - if (day_view->drag_event_num != -1) - day_view->drag_event_num = -1; + if (day_view->drag_event_num != -1) + day_view->drag_event_num = -1; + tooltip_destroy (day_view, item); + /* Only let the EText handle the event while editing. */ + if (!E_TEXT (item)->editing) + g_signal_stop_emission_by_name (item, "event"); + break; case GDK_BUTTON_PRESS: tooltip_destroy (day_view, item); @@ -8441,12 +8459,12 @@ e_day_view_update_main_canvas_drag (EDayView *day_view, end_row = start_row; num_rows = end_row - start_row + 1; - } - if (event && day_view->drag_event_day == day && start_row == row) { - cols_in_row = day_view->cols_per_row[day][row]; - start_col = event->start_row_or_col; - num_columns = event->num_columns; + if (day_view->drag_event_day == day && start_row == row) { + cols_in_row = day_view->cols_per_row[day][row]; + start_col = event->start_row_or_col; + num_columns = event->num_columns; + } } item_x = day_view->day_offsets[day] @@ -8561,7 +8579,11 @@ e_day_view_on_drag_begin (GtkWidget *widget, event_num = day_view->drag_event_num; /* These should both be set. */ - g_return_if_fail (day != -1); + if (day == -1) { + g_warn_if_reached (); + return; + } + g_return_if_fail (event_num != -1); if (day == E_DAY_VIEW_LONG_EVENT) { @@ -8639,7 +8661,11 @@ e_day_view_on_drag_data_get (GtkWidget *widget, event_num = day_view->drag_event_num; /* These should both be set. */ - g_return_if_fail (day != -1); + if (day == -1) { + g_warn_if_reached (); + return; + } + g_return_if_fail (event_num != -1); if (day == E_DAY_VIEW_LONG_EVENT) { diff --git a/calendar/gui/e-day-view.h b/calendar/gui/e-day-view.h index 19d735d6d2..e02567fff8 100644 --- a/calendar/gui/e-day-view.h +++ b/calendar/gui/e-day-view.h @@ -277,7 +277,7 @@ struct _EDayView { /* This is the width & offset of each of the day columns in the * display. */ - gint day_widths[E_DAY_VIEW_MAX_DAYS]; + gint day_widths[E_DAY_VIEW_MAX_DAYS + 1]; gint day_offsets[E_DAY_VIEW_MAX_DAYS + 1]; /* An array holding the number of columns in each row, in each day. diff --git a/calendar/gui/e-meeting-list-view.c b/calendar/gui/e-meeting-list-view.c index e211d21f82..0b584a11de 100644 --- a/calendar/gui/e-meeting-list-view.c +++ b/calendar/gui/e-meeting-list-view.c @@ -307,15 +307,16 @@ e_meeting_list_view_remove_attendee_from_name_selector (EMeetingListView *view, EDestination *des = l->data; if (e_destination_is_evolution_list (des)) { - GList *l, *dl; + GList *l2, *dl; dl = (GList *) e_destination_list_get_dests (des); - for (l = dl; l; l = l->next) { - attendee = e_destination_get_email (l->data); + for (l2 = dl; l2; l2 = l2->next) { + attendee = e_destination_get_email (l2->data); if (madd && attendee && g_str_equal (madd, attendee)) { - g_object_unref (l->data); - l = g_list_remove (l, l->data); + g_object_unref (l2->data); + /* coverity[returned_pointer] */ + l2 = g_list_remove (l2, l2->data); break; } } diff --git a/calendar/gui/e-meeting-time-sel.c b/calendar/gui/e-meeting-time-sel.c index 674059dc71..f8965700fa 100644 --- a/calendar/gui/e-meeting-time-sel.c +++ b/calendar/gui/e-meeting-time-sel.c @@ -997,7 +997,11 @@ e_meeting_time_selector_create_no_info_pattern (EMeetingTimeSelector *mts) CAIRO_CONTENT_COLOR, 8, 8); cr = cairo_create (surface); - gdk_color_parse ("white", &color); + color.pixel = 0; + color.red = 0xFFFF; + color.green = 0xFFFF; + color.blue = 0xFFFF; + gdk_cairo_set_source_color (cr, &color); cairo_paint (cr); diff --git a/calendar/gui/e-week-view-event-item.c b/calendar/gui/e-week-view-event-item.c index 298319cdea..4fa4966457 100644 --- a/calendar/gui/e-week-view-event-item.c +++ b/calendar/gui/e-week-view-event-item.c @@ -888,7 +888,7 @@ week_view_event_item_draw (GnomeCanvasItem *canvas_item, draw_end = FALSE; break; default: - g_return_if_reached (); + g_warn_if_reached (); draw_start = FALSE; draw_end = FALSE; break; diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index a45cb0cb77..7e1be0a614 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -1259,7 +1259,6 @@ week_view_set_selected_time_range (ECalendarView *cal_view, { GDate date, end_date; gint num_days; - gboolean update_adjustment_value = FALSE; EWeekView *week_view = E_WEEK_VIEW (cal_view); g_return_if_fail (E_IS_WEEK_VIEW (week_view)); @@ -1293,18 +1292,6 @@ week_view_set_selected_time_range (ECalendarView *cal_view, week_view->selection_start_day, num_days); - /* Reset the adjustment value to 0 if the base address has changed. - * Note that we do this after updating first_day_shown so that our - * signal handler will not try to reload the events. */ - if (update_adjustment_value) { - GtkRange *range; - GtkAdjustment *adjustment; - - range = GTK_RANGE (week_view->vscrollbar); - adjustment = gtk_range_get_adjustment (range); - gtk_adjustment_set_value (adjustment, 0); - } - gtk_widget_queue_draw (week_view->main_canvas); } @@ -3703,7 +3690,7 @@ e_week_view_start_editing_event (EWeekView *week_view, editing = &g_array_index (week_view->events, EWeekViewEvent, week_view->editing_event_num); /* do not change to other part of same component - the event is spread into more days */ - if (editing && event && editing->comp_data == event->comp_data) + if (editing && editing->comp_data == event->comp_data) return FALSE; } @@ -4828,7 +4815,10 @@ e_week_view_on_jump_button_event (GnomeCanvasItem *item, break; } - g_return_val_if_fail (day < E_WEEK_VIEW_MAX_WEEKS * 7, FALSE); + if (day >= E_WEEK_VIEW_MAX_WEEKS * 7) { + g_warn_if_reached (); + return FALSE; + } if (focus_event->in) { week_view->focused_jump_button = day; diff --git a/calendar/gui/e-weekday-chooser.c b/calendar/gui/e-weekday-chooser.c index ef459e574d..05757a5c2f 100644 --- a/calendar/gui/e-weekday-chooser.c +++ b/calendar/gui/e-weekday-chooser.c @@ -480,7 +480,10 @@ day_event_cb (GnomeCanvasItem *item, break; } - g_return_val_if_fail (ii < 7, FALSE); + if (ii >= 7) { + g_warn_if_reached (); + return FALSE; + } chooser->priv->focus_day = e_weekday_add_days ( chooser->priv->week_start_day, ii); @@ -634,7 +637,7 @@ e_weekday_chooser_set_blocked (EWeekdayChooser *chooser, GDateWeekday e_weekday_chooser_get_week_start_day (EWeekdayChooser *chooser) { - g_return_val_if_fail (E_IS_WEEKDAY_CHOOSER (chooser), -1); + g_return_val_if_fail (E_IS_WEEKDAY_CHOOSER (chooser), G_DATE_BAD_WEEKDAY); return chooser->priv->week_start_day; } diff --git a/calendar/gui/ea-gnome-calendar.c b/calendar/gui/ea-gnome-calendar.c index 7edf52de7d..9fd48565a9 100644 --- a/calendar/gui/ea-gnome-calendar.c +++ b/calendar/gui/ea-gnome-calendar.c @@ -162,8 +162,11 @@ ea_gnome_calendar_get_label_description (GnomeCalendar *gcal) view_type = gnome_calendar_get_view (gcal); calendar_view = gnome_calendar_get_calendar_view (gcal, view_type); - e_calendar_view_get_visible_time_range ( - calendar_view, &start_time, &end_time); + if(!e_calendar_view_get_visible_time_range ( + calendar_view, &start_time, &end_time)) { + g_warn_if_reached (); + return NULL; + } start_tt = icaltime_from_timet_with_zone (start_time, FALSE, zone); start_tm.tm_year = start_tt.year - 1900; diff --git a/calendar/gui/ea-week-view-main-item.c b/calendar/gui/ea-week-view-main-item.c index 3aa571d3a9..20c86aa7c0 100644 --- a/calendar/gui/ea-week-view-main-item.c +++ b/calendar/gui/ea-week-view-main-item.c @@ -1142,8 +1142,6 @@ table_interface_get_column_description (AtkTable *table, case 6: g_snprintf (buffer,128,"Sunday"); break; - default: - break; } ea_cell_table_set_column_label (cell_data, in_col, buffer); diff --git a/calendar/gui/ea-week-view.c b/calendar/gui/ea-week-view.c index 24d6e8de83..4d77cda1e3 100644 --- a/calendar/gui/ea-week-view.c +++ b/calendar/gui/ea-week-view.c @@ -232,14 +232,9 @@ ea_week_view_get_n_children (AtkObject *accessible) event = &g_array_index (week_view->events, EWeekViewEvent, event_index); - if (!event) - continue; span = &g_array_index (week_view->spans, EWeekViewEventSpan, event->spans_index + 0); - if (!span) - continue; - /* at least one of the event spans is visible, count it */ if (span->text_item) ++count; @@ -299,15 +294,9 @@ ea_week_view_ref_child (AtkObject *accessible, event = &g_array_index (week_view->events, EWeekViewEvent, event_index); - if (!event) - continue; - span = &g_array_index (week_view->spans, EWeekViewEventSpan, event->spans_index + span_num); - if (!span) - continue; - current_day = span->start_day; if (span->text_item) ++count; diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c index d8cc740a3b..1a48a29ee4 100644 --- a/calendar/gui/itip-utils.c +++ b/calendar/gui/itip-utils.c @@ -634,6 +634,7 @@ comp_from (ECalComponentItipMethod method, return sender; if (!e_cal_component_has_attendees (comp)) return NULL; + /* coverity[fallthrough] */ case E_CAL_COMPONENT_METHOD_CANCEL: @@ -1844,7 +1845,6 @@ reply_to_calendar_comp (ESourceRegistry *registry, ECalComponent *comp = NULL; icalcomponent *top_level = NULL; icaltimezone *default_zone; - GSList *users = NULL; gchar *subject = NULL; gchar *ical_string = NULL; gboolean retval = FALSE; @@ -1865,7 +1865,7 @@ reply_to_calendar_comp (ESourceRegistry *registry, /* Recipients */ destinations = comp_to_list ( - registry, method, comp, users, reply_all, NULL); + registry, method, comp, NULL, reply_all, NULL); /* Subject information */ subject = comp_subject (registry, method, comp); @@ -2003,11 +2003,6 @@ reply_to_calendar_comp (ESourceRegistry *registry, if (top_level != NULL) icalcomponent_free (top_level); - if (users) { - g_slist_foreach (users, (GFunc) g_free, NULL); - g_slist_free (users); - } - g_free (subject); g_free (ical_string); return retval; diff --git a/calendar/gui/print.c b/calendar/gui/print.c index 13f195c2b7..c902a1c4e7 100644 --- a/calendar/gui/print.c +++ b/calendar/gui/print.c @@ -1654,8 +1654,10 @@ print_day_details (GtkPrintContext *context, /* this ugly thing is here only to get rid of compiler warning * about unused 'jump_xpm_focused' */ - if (pixbuf) + if (pixbuf) { + /* coverity[dead_error_line] */ xpm = (const gchar **) jump_xpm_focused; + } pixbuf = gdk_pixbuf_new_from_xpm_data (xpm); } @@ -2003,11 +2005,6 @@ print_week_event (GtkPrintContext *context, if (!pixbuf) { const gchar **xpm = (const gchar **) jump_xpm; - /* this ugly thing is here only to get rid of compiler warning - * about unused 'jump_xpm_focused' */ - if (pixbuf) - xpm = (const gchar **) jump_xpm_focused; - pixbuf = gdk_pixbuf_new_from_xpm_data (xpm); } @@ -2840,11 +2837,6 @@ print_work_week_day_details (GtkPrintContext *context, if (!pixbuf) { const gchar **xpm = (const gchar **) jump_xpm; - /* this ugly thing is here only to get rid of compiler warning - * about unused 'jump_xpm_focused' */ - if (pixbuf) - xpm = (const gchar **) jump_xpm_focused; - pixbuf = gdk_pixbuf_new_from_xpm_data (xpm); } diff --git a/calendar/importers/icalendar-importer.c b/calendar/importers/icalendar-importer.c index 2368643877..83fc9521c0 100644 --- a/calendar/importers/icalendar-importer.c +++ b/calendar/importers/icalendar-importer.c @@ -1004,34 +1004,28 @@ gnome_calendar_import (EImport *ei, g_free (filename); /* If we couldn't load the file, just return. FIXME: Error message? */ - if (!icalcomp) - goto out; - - ici = g_malloc0 (sizeof (*ici)); - ici->ei = ei; - ici->target = target; - ici->cancellable = g_cancellable_new (); - ici->icalcomp = icalcomp; - icalcomp = NULL; - - g_datalist_set_data_full (&target->data, "gnomecal-data", ici, free_ici); - - prepare_events (ici->icalcomp, &ici->tasks); - if (do_calendar) { - open_default_source (ici, E_CAL_CLIENT_SOURCE_TYPE_EVENTS, gc_import_events); - return; - } + if (icalcomp) { + ici = g_malloc0 (sizeof (*ici)); + ici->ei = ei; + ici->target = target; + ici->cancellable = g_cancellable_new (); + ici->icalcomp = icalcomp; + + g_datalist_set_data_full (&target->data, "gnomecal-data", ici, free_ici); + + prepare_events (ici->icalcomp, &ici->tasks); + if (do_calendar) { + open_default_source (ici, E_CAL_CLIENT_SOURCE_TYPE_EVENTS, gc_import_events); + return; + } - prepare_tasks (ici->icalcomp, ici->tasks); - if (do_tasks) { - open_default_source (ici, E_CAL_CLIENT_SOURCE_TYPE_TASKS, gc_import_tasks); - return; + prepare_tasks (ici->icalcomp, ici->tasks); + if (do_tasks) { + open_default_source (ici, E_CAL_CLIENT_SOURCE_TYPE_TASKS, gc_import_tasks); + return; + } } - out: - if (icalcomp) - icalcomponent_free (icalcomp); - e_import_complete (ei, target); } diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 9b721b0d4b..502f098d87 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -2142,7 +2142,7 @@ static gboolean msg_composer_key_press_event (GtkWidget *widget, GdkEventKey *event) { - EMsgComposer *composer = E_MSG_COMPOSER (widget); + EMsgComposer *composer; GtkWidget *input_widget; GtkhtmlEditor *editor; EWebViewGtkHTML *web_view; @@ -3140,88 +3140,82 @@ e_msg_composer_new_with_message (EShell *shell, table, identity_uid); } - if (postto == NULL) { - auto_cc = g_hash_table_new_full ( - (GHashFunc) camel_strcase_hash, - (GEqualFunc) camel_strcase_equal, - (GDestroyNotify) g_free, - (GDestroyNotify) NULL); - - auto_bcc = g_hash_table_new_full ( - (GHashFunc) camel_strcase_hash, - (GEqualFunc) camel_strcase_equal, - (GDestroyNotify) g_free, - (GDestroyNotify) NULL); - - if (source != NULL) { - composer_add_auto_recipients (source, "cc", auto_cc); - composer_add_auto_recipients (source, "bcc", auto_bcc); - } + auto_cc = g_hash_table_new_full ( + (GHashFunc) camel_strcase_hash, + (GEqualFunc) camel_strcase_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) NULL); + + auto_bcc = g_hash_table_new_full ( + (GHashFunc) camel_strcase_hash, + (GEqualFunc) camel_strcase_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) NULL); - to = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO); - cc = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_CC); - bcc = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_BCC); + if (source != NULL) { + composer_add_auto_recipients (source, "cc", auto_cc); + composer_add_auto_recipients (source, "bcc", auto_bcc); + } - len = CAMEL_ADDRESS (to)->addresses->len; - for (i = 0; i < len; i++) { - const gchar *name, *addr; + to = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO); + cc = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_CC); + bcc = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_BCC); - if (camel_internet_address_get (to, i, &name, &addr)) { - EDestination *dest = e_destination_new (); - e_destination_set_name (dest, name); - e_destination_set_email (dest, addr); - To = g_list_append (To, dest); - } + len = CAMEL_ADDRESS (to)->addresses->len; + for (i = 0; i < len; i++) { + const gchar *name, *addr; + + if (camel_internet_address_get (to, i, &name, &addr)) { + EDestination *dest = e_destination_new (); + e_destination_set_name (dest, name); + e_destination_set_email (dest, addr); + To = g_list_append (To, dest); } + } - Tov = destination_list_to_vector (To); - g_list_free (To); + Tov = destination_list_to_vector (To); + g_list_free (To); - len = CAMEL_ADDRESS (cc)->addresses->len; - for (i = 0; i < len; i++) { - const gchar *name, *addr; + len = CAMEL_ADDRESS (cc)->addresses->len; + for (i = 0; i < len; i++) { + const gchar *name, *addr; - if (camel_internet_address_get (cc, i, &name, &addr)) { - EDestination *dest = e_destination_new (); - e_destination_set_name (dest, name); - e_destination_set_email (dest, addr); + if (camel_internet_address_get (cc, i, &name, &addr)) { + EDestination *dest = e_destination_new (); + e_destination_set_name (dest, name); + e_destination_set_email (dest, addr); - if (g_hash_table_contains (auto_cc, addr)) - e_destination_set_auto_recipient (dest, TRUE); + if (g_hash_table_contains (auto_cc, addr)) + e_destination_set_auto_recipient (dest, TRUE); - Cc = g_list_append (Cc, dest); - } + Cc = g_list_append (Cc, dest); } + } - Ccv = destination_list_to_vector (Cc); - g_hash_table_destroy (auto_cc); - g_list_free (Cc); + Ccv = destination_list_to_vector (Cc); + g_hash_table_destroy (auto_cc); + g_list_free (Cc); - len = CAMEL_ADDRESS (bcc)->addresses->len; - for (i = 0; i < len; i++) { - const gchar *name, *addr; + len = CAMEL_ADDRESS (bcc)->addresses->len; + for (i = 0; i < len; i++) { + const gchar *name, *addr; - if (camel_internet_address_get (bcc, i, &name, &addr)) { - EDestination *dest = e_destination_new (); - e_destination_set_name (dest, name); - e_destination_set_email (dest, addr); + if (camel_internet_address_get (bcc, i, &name, &addr)) { + EDestination *dest = e_destination_new (); + e_destination_set_name (dest, name); + e_destination_set_email (dest, addr); - if (g_hash_table_contains (auto_bcc, addr)) - e_destination_set_auto_recipient (dest, TRUE); + if (g_hash_table_contains (auto_bcc, addr)) + e_destination_set_auto_recipient (dest, TRUE); - Bcc = g_list_append (Bcc, dest); - } + Bcc = g_list_append (Bcc, dest); } - - Bccv = destination_list_to_vector (Bcc); - g_hash_table_destroy (auto_bcc); - g_list_free (Bcc); - } else { - Tov = NULL; - Ccv = NULL; - Bccv = NULL; } + Bccv = destination_list_to_vector (Bcc); + g_hash_table_destroy (auto_bcc); + g_list_free (Bcc); + if (source != NULL) g_object_unref (source); diff --git a/e-util/e-attachment-store.c b/e-util/e-attachment-store.c index 3720baf16b..c7128ec182 100644 --- a/e-util/e-attachment-store.c +++ b/e-util/e-attachment-store.c @@ -824,8 +824,10 @@ e_attachment_store_get_uris_finish (EAttachmentStore *store, g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); simple = G_SIMPLE_ASYNC_RESULT (result); + if (g_simple_async_result_propagate_error (simple, error)) + return NULL; + uris = g_simple_async_result_get_op_res_gpointer (simple); - g_simple_async_result_propagate_error (simple, error); return uris; } @@ -982,8 +984,8 @@ e_attachment_store_load_finish (EAttachmentStore *store, g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); simple = G_SIMPLE_ASYNC_RESULT (result); - success = g_simple_async_result_get_op_res_gboolean (simple); - g_simple_async_result_propagate_error (simple, error); + success = !g_simple_async_result_propagate_error (simple, error) && + g_simple_async_result_get_op_res_gboolean (simple); return success; } @@ -1332,8 +1334,10 @@ e_attachment_store_save_finish (EAttachmentStore *store, g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); simple = G_SIMPLE_ASYNC_RESULT (result); + if (g_simple_async_result_propagate_error (simple, error)) + return NULL; + uris = g_simple_async_result_get_op_res_gpointer (simple); - g_simple_async_result_propagate_error (simple, error); return uris; } diff --git a/e-util/e-attachment.c b/e-util/e-attachment.c index e2b64ab92b..42d5e93caf 100644 --- a/e-util/e-attachment.c +++ b/e-util/e-attachment.c @@ -2191,6 +2191,11 @@ e_attachment_load_finish (EAttachment *attachment, g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); simple = G_SIMPLE_ASYNC_RESULT (result); + if (g_simple_async_result_propagate_error (simple, error)) { + attachment_set_loading (attachment, FALSE); + return FALSE; + } + load_context = g_simple_async_result_get_op_res_gpointer (simple); if (load_context != NULL && load_context->mime_part != NULL) { @@ -2206,8 +2211,6 @@ e_attachment_load_finish (EAttachment *attachment, attachment, load_context->mime_part); } - g_simple_async_result_propagate_error (simple, error); - attachment_set_loading (attachment, FALSE); return (load_context != NULL); @@ -2529,8 +2532,8 @@ e_attachment_open_finish (EAttachment *attachment, g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); simple = G_SIMPLE_ASYNC_RESULT (result); - success = g_simple_async_result_get_op_res_gboolean (simple); - g_simple_async_result_propagate_error (simple, error); + success = !g_simple_async_result_propagate_error (simple, error) && + g_simple_async_result_get_op_res_gboolean (simple); return success; } @@ -3066,10 +3069,14 @@ e_attachment_save_finish (EAttachment *attachment, g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL); simple = G_SIMPLE_ASYNC_RESULT (result); + if (g_simple_async_result_propagate_error (simple, error)) { + attachment_set_saving (attachment, FALSE); + return NULL; + } + destination = g_simple_async_result_get_op_res_gpointer (simple); if (destination != NULL) g_object_ref (destination); - g_simple_async_result_propagate_error (simple, error); attachment_set_saving (attachment, FALSE); diff --git a/e-util/e-canvas-background.c b/e-util/e-canvas-background.c index 6379697719..0c5c28a282 100644 --- a/e-util/e-canvas-background.c +++ b/e-util/e-canvas-background.c @@ -121,13 +121,13 @@ ecb_set_property (GObject *object, switch (property_id) { case PROP_FILL_COLOR: - if (g_value_get_string (value)) - gdk_color_parse (g_value_get_string (value), &color); - - ecb->priv->rgba = ((color.red & 0xff00) << 16 | - (color.green & 0xff00) << 8 | - (color.blue & 0xff00) | - 0xff); + if (g_value_get_string (value) && + gdk_color_parse (g_value_get_string (value), &color)) { + ecb->priv->rgba = ((color.red & 0xff00) << 16 | + (color.green & 0xff00) << 8 | + (color.blue & 0xff00) | + 0xff); + } break; case PROP_FILL_COLOR_GDK: diff --git a/e-util/e-canvas.c b/e-util/e-canvas.c index 93304065e3..2bac10fac6 100644 --- a/e-util/e-canvas.c +++ b/e-util/e-canvas.c @@ -678,14 +678,12 @@ e_canvas_item_grab_focus (GnomeCanvasItem *item, gtk_widget_grab_focus (GTK_WIDGET (item->canvas)); } - if (item) { - ev.focus_change.type = GDK_FOCUS_CHANGE; - ev.focus_change.window = bin_window; - ev.focus_change.send_event = FALSE; - ev.focus_change.in = TRUE; + ev.focus_change.type = GDK_FOCUS_CHANGE; + ev.focus_change.window = bin_window; + ev.focus_change.send_event = FALSE; + ev.focus_change.in = TRUE; - canvas_emit_event (item->canvas, &ev); - } + canvas_emit_event (item->canvas, &ev); } static void diff --git a/e-util/e-cell-text.c b/e-util/e-cell-text.c index 6026185e9a..d7e38ebe9c 100644 --- a/e-util/e-cell-text.c +++ b/e-util/e-cell-text.c @@ -467,7 +467,7 @@ layout_with_preedit (ECellTextView *text_view, edit->im_context, &preedit_string,&preedit_attrs, NULL); - preedit_length = edit->preedit_length = strlen (preedit_string);; + preedit_length = edit->preedit_length = preedit_string ? strlen (preedit_string) : 0; layout = edit->layout; @@ -2237,12 +2237,10 @@ _get_position (ECellTextView *text_view, case E_TEP_BACKWARD_PAGE: return edit->selection_end; default: - return edit->selection_end; + break; } - g_return_val_if_reached (0); - - return 0; /* Kill warning */ + return edit->selection_end; } static void diff --git a/e-util/e-filter-color.c b/e-util/e-filter-color.c index 213530fbb2..63c27b7079 100644 --- a/e-util/e-filter-color.c +++ b/e-util/e-filter-color.c @@ -84,7 +84,8 @@ filter_color_xml_decode (EFilterElement *element, prop = xmlGetProp (node, (xmlChar *)"spec"); if (prop != NULL) { - gdk_color_parse ((gchar *) prop, &fc->color); + if (!gdk_color_parse ((gchar *) prop, &fc->color)) + g_warning ("%s: Failed to parse color from string '%s'", G_STRFUNC, prop); xmlFree (prop); } else { /* try reading the old RGB properties */ diff --git a/e-util/e-filter-rule.c b/e-util/e-filter-rule.c index 8dc9a17a8a..842cf63061 100644 --- a/e-util/e-filter-rule.c +++ b/e-util/e-filter-rule.c @@ -100,7 +100,11 @@ part_combobox_changed (GtkComboBox *combobox, /* traverse until reached index */ } - g_return_if_fail (part != NULL); + if (!part) { + g_warn_if_reached (); + return; + } + g_return_if_fail (i == index); /* dont update if we haven't changed */ diff --git a/e-util/e-misc-utils.c b/e-util/e-misc-utils.c index 1ae9301aa3..1e9cd1d0c1 100644 --- a/e-util/e-misc-utils.c +++ b/e-util/e-misc-utils.c @@ -1232,6 +1232,7 @@ e_format_number (gint number) default: last_count = *grouping; grouping++; + /* coverity[fallthrough] */ case 0: divider = epow10 (last_count); if (number >= divider) { diff --git a/e-util/e-name-selector-list.c b/e-util/e-name-selector-list.c index 52516a5621..8e51e41667 100644 --- a/e-util/e-name-selector-list.c +++ b/e-util/e-name-selector-list.c @@ -465,8 +465,9 @@ enl_tree_button_press_event (GtkWidget *widget, if (!gtk_widget_has_grab (GTK_WIDGET (list->priv->popup))) enl_popup_grab (list, (GdkEvent *) event); - gtk_tree_view_get_dest_row_at_pos ( - tree_view, event->x, event->y, &path, NULL); + if (!gtk_tree_view_get_dest_row_at_pos ( + tree_view, event->x, event->y, &path, NULL)) + return FALSE; selection = gtk_tree_view_get_selection (tree_view); if (!gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, path)) return FALSE; diff --git a/e-util/e-send-options.c b/e-util/e-send-options.c index f586f36f66..c105571f1c 100644 --- a/e-util/e-send-options.c +++ b/e-util/e-send-options.c @@ -573,6 +573,7 @@ setup_widgets (ESendOptionsDialog *sod, priv->help_section = g_strdup ("groupwise-placeholder"); gtk_widget_hide (priv->completed_label); gtk_widget_hide (priv->when_completed); + break; case E_ITEM_TASK: priv->help_section = g_strdup ("groupwise-placeholder"); gtk_widget_hide (priv->security_label); @@ -636,6 +637,7 @@ e_send_options_cb (GtkDialog *dialog, switch (state) { case GTK_RESPONSE_OK: e_send_options_get_widgets_data (sod); + /* coverity[fallthrough] */ case GTK_RESPONSE_CANCEL: gtk_widget_hide (priv->main); gtk_widget_destroy (priv->main); diff --git a/e-util/e-stock-request.c b/e-util/e-stock-request.c index 0ce7d8c254..b8cb21ba87 100644 --- a/e-util/e-stock-request.c +++ b/e-util/e-stock-request.c @@ -107,8 +107,11 @@ handle_stock_request_idle_cb (gpointer user_data) filename = gtk_icon_info_get_filename (icon_info); if (filename != NULL) { - g_file_get_contents ( - filename, &buffer, &buff_len, &local_error); + if (!g_file_get_contents ( + filename, &buffer, &buff_len, &local_error)) { + buffer = NULL; + buff_len = 0; + } priv->content_type = g_content_type_guess (filename, NULL, 0, NULL); diff --git a/e-util/e-table-click-to-add.c b/e-util/e-table-click-to-add.c index d5202f7a03..c9abf037c5 100644 --- a/e-util/e-table-click-to-add.c +++ b/e-util/e-table-click-to-add.c @@ -437,6 +437,7 @@ etcta_event (GnomeCanvasItem *item, case GDK_FOCUS_CHANGE: if (!e->focus_change.in) return TRUE; + /* coverity[fallthrough] */ case GDK_BUTTON_PRESS: if (etcta->text) { diff --git a/e-util/e-table-config.c b/e-util/e-table-config.c index 5fbb6b0329..8c5fecd90a 100644 --- a/e-util/e-table-config.c +++ b/e-util/e-table-config.c @@ -231,7 +231,7 @@ static ETableColumnSpecification * find_column_spec_by_name (ETableSpecification *spec, const gchar *s) { - ETableColumnSpecification *column; + ETableColumnSpecification *column = NULL; GPtrArray *array; guint ii; diff --git a/e-util/e-table-group-container.c b/e-util/e-table-group-container.c index d828ddec3e..426c544a63 100644 --- a/e-util/e-table-group-container.c +++ b/e-util/e-table-group-container.c @@ -1453,7 +1453,7 @@ e_table_group_container_print_page (EPrintable *ep, break; } - child = child->next; + child = child ? child->next : NULL; if (!child) { child_printable = NULL; break; diff --git a/e-util/e-table-header-item.c b/e-util/e-table-header-item.c index 06d003007b..556c8a2e35 100644 --- a/e-util/e-table-header-item.c +++ b/e-util/e-table-header-item.c @@ -1222,7 +1222,7 @@ static void ethi_start_drag (ETableHeaderItem *ethi, GdkEvent *event) { - GtkWidget *widget = GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas); + GtkWidget *widget; GtkTargetList *list; GdkDragContext *context; ETableCol *ecol; diff --git a/e-util/e-table-header-utils.c b/e-util/e-table-header-utils.c index 66efb01d30..5baf7f1a37 100644 --- a/e-util/e-table-header-utils.c +++ b/e-util/e-table-header-utils.c @@ -272,6 +272,7 @@ e_table_header_draw_button (cairo_t *cr, break; } + /* coverity[dead_error_begin] */ default: cairo_restore (cr); g_return_if_reached (); diff --git a/e-util/e-table-item.c b/e-util/e-table-item.c index 3f88d8cb7e..1a1956fdcc 100644 --- a/e-util/e-table-item.c +++ b/e-util/e-table-item.c @@ -3076,9 +3076,12 @@ eti_event (GnomeCanvasItem *item, e_table_item_leave_edit_(eti); } } + return_val = FALSE; + break; default: return_val = FALSE; + break; } /* d(g_print("%s: returning: %s\n", __FUNCTION__, return_val?"true":"false"));*/ @@ -3601,9 +3604,11 @@ e_table_item_enter_edit (ETableItem *eti, eti->editing_col = col; eti->editing_row = row; - eti->edit_ctx = e_cell_enter_edit (eti->cell_views[col], view_to_model_col (eti, col), col, row); + if (col >= 0) { + eti->edit_ctx = e_cell_enter_edit (eti->cell_views[col], view_to_model_col (eti, col), col, row); - g_object_notify (G_OBJECT (eti), "is-editing"); + g_object_notify (G_OBJECT (eti), "is-editing"); + } } /** diff --git a/e-util/e-text.c b/e-util/e-text.c index d13b4a637e..3fda17268d 100644 --- a/e-util/e-text.c +++ b/e-util/e-text.c @@ -726,8 +726,11 @@ e_text_set_property (GObject *object, break; case PROP_FILL_COLOR: - if (g_value_get_string (value)) - gdk_color_parse (g_value_get_string (value), &color); + if (g_value_get_string (value) && + !gdk_color_parse (g_value_get_string (value), &color)) { + g_warning ("%s: Failed to parse color '%s'", G_STRFUNC, g_value_get_string (value)); + break; + } text->rgba = ((color.red & 0xff00) << 16 | (color.green & 0xff00) << 8 | @@ -1275,7 +1278,7 @@ e_text_draw (GnomeCanvasItem *item, if (text->editing) { if (text->selection_start != text->selection_end) { - cairo_region_t *clip_region = cairo_region_create (); + cairo_region_t *clip_region; gint indices[2]; GtkStateType state; diff --git a/e-util/gal-a11y-e-cell-tree.c b/e-util/gal-a11y-e-cell-tree.c index e0757f5300..07d6ac331b 100644 --- a/e-util/gal-a11y-e-cell-tree.c +++ b/e-util/gal-a11y-e-cell-tree.c @@ -191,15 +191,14 @@ gal_a11y_e_cell_tree_new (ETableItem *item, { AtkObject *subcell_a11y; GalA11yECellTree *a11y; - ETreePath node; ETreeModel *tree_model; ETreeTableAdapter *tree_table_adapter; - ECellView *subcell_view; + subcell_view = e_cell_tree_view_get_subcell_view (cell_view); - if (subcell_view->ecell) { + if (subcell_view && subcell_view->ecell) { subcell_a11y = gal_a11y_e_cell_registry_get_object ( NULL, item, @@ -233,8 +232,7 @@ gal_a11y_e_cell_tree_new (ETableItem *item, if (e_tree_table_adapter_node_is_expanded (tree_table_adapter, node)) gal_a11y_e_cell_add_state (GAL_A11Y_E_CELL (subcell_a11y), ATK_STATE_EXPANDED, FALSE); } - } - else + } else subcell_a11y = NULL; /* create a companion a11y object, this object has type GalA11yECellTree diff --git a/e-util/gal-a11y-e-cell.c b/e-util/gal-a11y-e-cell.c index 9f16b34fd9..b05f38d750 100644 --- a/e-util/gal-a11y-e-cell.c +++ b/e-util/gal-a11y-e-cell.c @@ -359,7 +359,10 @@ gal_a11y_e_cell_remove_action_by_name (GalA11yECell *cell, } } - g_return_val_if_fail (list_node != NULL, FALSE); + if (!list_node) { + g_warn_if_reached (); + return FALSE; + } _gal_a11y_e_cell_destroy_action_info (list_node->data, NULL); cell->action_list = g_list_remove_link (cell->action_list, list_node); diff --git a/e-util/gal-a11y-e-table-item.c b/e-util/gal-a11y-e-table-item.c index 51bce1725b..c3bbded403 100644 --- a/e-util/gal-a11y-e-table-item.c +++ b/e-util/gal-a11y-e-table-item.c @@ -1141,41 +1141,38 @@ gal_a11y_e_table_item_new (ETableItem *item) if (GET_PRIVATE (a11y)->columns == NULL) return NULL; - if (item) { - g_signal_connect ( - item, "selection_model_removed", - G_CALLBACK (eti_a11y_selection_model_removed_cb), NULL); + g_signal_connect ( + item, "selection_model_removed", + G_CALLBACK (eti_a11y_selection_model_removed_cb), NULL); + g_signal_connect ( + item, "selection_model_added", + G_CALLBACK (eti_a11y_selection_model_added_cb), NULL); + if (item->selection) + gal_a11y_e_table_item_ref_selection ( + a11y, + item->selection); + + /* find the TableItem's parent: table or tree */ + GET_PRIVATE (a11y)->widget = gtk_widget_get_parent ( + GTK_WIDGET (item->parent.canvas)); + parent = gtk_widget_get_accessible (GET_PRIVATE (a11y)->widget); + name = atk_object_get_name (parent); + if (name) + atk_object_set_name (accessible, name); + atk_object_set_parent (accessible, parent); + + if (E_IS_TREE (GET_PRIVATE (a11y)->widget)) { + ETreeModel *model; + model = e_tree_get_model (E_TREE (GET_PRIVATE (a11y)->widget)); g_signal_connect ( - item, "selection_model_added", - G_CALLBACK (eti_a11y_selection_model_added_cb), NULL); - if (item->selection) - gal_a11y_e_table_item_ref_selection ( - a11y, - item->selection); - - /* find the TableItem's parent: table or tree */ - GET_PRIVATE (a11y)->widget = gtk_widget_get_parent ( - GTK_WIDGET (item->parent.canvas)); - parent = gtk_widget_get_accessible (GET_PRIVATE (a11y)->widget); - name = atk_object_get_name (parent); - if (name) - atk_object_set_name (accessible, name); - atk_object_set_parent (accessible, parent); - - if (E_IS_TREE (GET_PRIVATE (a11y)->widget)) { - ETreeModel *model; - model = e_tree_get_model (E_TREE (GET_PRIVATE (a11y)->widget)); - g_signal_connect ( - model, "node_changed", - G_CALLBACK (eti_tree_model_node_changed_cb), item); - accessible->role = ATK_ROLE_TREE_TABLE; - } else if (E_IS_TABLE (GET_PRIVATE (a11y)->widget)) { - accessible->role = ATK_ROLE_TABLE; - } + model, "node_changed", + G_CALLBACK (eti_tree_model_node_changed_cb), item); + accessible->role = ATK_ROLE_TREE_TABLE; + } else if (E_IS_TABLE (GET_PRIVATE (a11y)->widget)) { + accessible->role = ATK_ROLE_TABLE; } - if (item) - g_object_weak_ref (G_OBJECT (item), item_finalized, g_object_ref (a11y)); + g_object_weak_ref (G_OBJECT (item), item_finalized, g_object_ref (a11y)); esm = item->selection; diff --git a/e-util/test-calendar.c b/e-util/test-calendar.c index 9d36e9027a..790b710104 100644 --- a/e-util/test-calendar.c +++ b/e-util/test-calendar.c @@ -108,10 +108,13 @@ on_date_range_changed (ECalendarItem *calitem) gint start_year, start_month, start_day; gint end_year, end_month, end_day; - e_calendar_item_get_date_range ( + if (!e_calendar_item_get_date_range ( calitem, &start_year, &start_month, &start_day, - &end_year, &end_month, &end_day); + &end_year, &end_month, &end_day)) { + g_warning ("%s: Failed to get date range", G_STRFUNC); + return; + } g_print ( "Date range changed (D/M/Y): %i/%i/%i - %i/%i/%i\n", diff --git a/em-format/e-mail-formatter-headers.c b/em-format/e-mail-formatter-headers.c index 9d7a5120ad..28d2322e9b 100644 --- a/em-format/e-mail-formatter-headers.c +++ b/em-format/e-mail-formatter-headers.c @@ -58,8 +58,6 @@ format_short_headers (EMailFormatter *formatter, { CamelMimePart *mime_part; GtkTextDirection direction; - const gchar *charset; - CamelContentType *ct; gchar *hdr_charset; gchar *evolution_imagesdir; gchar *subject = NULL; @@ -73,9 +71,6 @@ format_short_headers (EMailFormatter *formatter, mime_part = e_mail_part_ref_mime_part (part); direction = gtk_widget_get_default_direction (); - ct = camel_mime_part_get_content_type (mime_part); - charset = camel_content_type_param (ct, "charset"); - charset = camel_iconv_charset_name (charset); hdr_charset = e_mail_formatter_dup_charset (formatter); if (!hdr_charset) hdr_charset = e_mail_formatter_dup_default_charset (formatter); diff --git a/em-format/e-mail-formatter-quote-attachment.c b/em-format/e-mail-formatter-quote-attachment.c index 1a6b19408c..81a2a15c10 100644 --- a/em-format/e-mail-formatter-quote-attachment.c +++ b/em-format/e-mail-formatter-quote-attachment.c @@ -63,7 +63,7 @@ emfqe_attachment_format (EMailFormatterExtension *extension, empa = E_MAIL_PART_ATTACHMENT (part); - if (!empa->attachment_view_part_id) + if (!empa || !empa->attachment_view_part_id) return FALSE; attachment_view_part = e_mail_part_list_ref_part ( @@ -78,7 +78,8 @@ emfqe_attachment_format (EMailFormatterExtension *extension, mime_part = e_mail_part_ref_mime_part (part); text = e_mail_part_describe ( mime_part, - empa ? empa->snoop_mime_type : + empa->snoop_mime_type && *empa->snoop_mime_type ? + empa->snoop_mime_type : e_mail_part_get_mime_type (part)); g_object_unref (mime_part); diff --git a/em-format/e-mail-formatter-text-html.c b/em-format/e-mail-formatter-text-html.c index 17632fa03f..1065474a33 100644 --- a/em-format/e-mail-formatter-text-html.c +++ b/em-format/e-mail-formatter-text-html.c @@ -191,12 +191,10 @@ emfe_text_html_format (EMailFormatterExtension *extension, closing = g_utf8_strchr (pos, -1, '>'); /* Find where the actual tag name begins */ - tag = g_utf8_find_next_char (pos, NULL); - while ((tag = g_utf8_find_next_char (pos, NULL)) != NULL) { + while (tag = g_utf8_find_next_char (pos, NULL), tag != NULL) { gunichar c = g_utf8_get_char (tag); if (!g_unichar_isspace (c)) break; - } if (g_ascii_strncasecmp (tag, "style", 5) == 0) { diff --git a/libemail-engine/e-mail-session.c b/libemail-engine/e-mail-session.c index 38eae7791d..23ed2ce4de 100644 --- a/libemail-engine/e-mail-session.c +++ b/libemail-engine/e-mail-session.c @@ -190,7 +190,7 @@ user_message_response_cb (GObject *source, } /* waiting for a response? */ - if (m && m->button_captions) + if (m->button_captions) e_flag_set (m->done); /* check for pendings */ diff --git a/libemail-engine/e-mail-utils.c b/libemail-engine/e-mail-utils.c index d4bb9b5050..9610da7419 100644 --- a/libemail-engine/e-mail-utils.c +++ b/libemail-engine/e-mail-utils.c @@ -86,8 +86,6 @@ em_utils_folder_is_drafts (ESourceRegistry *registry, folder_uri = e_mail_folder_uri_from_folder (folder); - store = camel_folder_get_parent_store (folder); - extension_name = E_SOURCE_EXTENSION_MAIL_COMPOSITION; list = e_source_registry_list_sources (registry, extension_name); @@ -157,8 +155,6 @@ em_utils_folder_is_templates (ESourceRegistry *registry, folder_uri = e_mail_folder_uri_from_folder (folder); - store = camel_folder_get_parent_store (folder); - extension_name = E_SOURCE_EXTENSION_MAIL_COMPOSITION; list = e_source_registry_list_sources (registry, extension_name); @@ -227,8 +223,6 @@ em_utils_folder_is_sent (ESourceRegistry *registry, folder_uri = e_mail_folder_uri_from_folder (folder); - store = camel_folder_get_parent_store (folder); - extension_name = E_SOURCE_EXTENSION_MAIL_SUBMISSION; list = e_source_registry_list_sources (registry, extension_name); diff --git a/libemail-engine/mail-folder-cache.c b/libemail-engine/mail-folder-cache.c index e54cdbb09c..672447c57e 100644 --- a/libemail-engine/mail-folder-cache.c +++ b/libemail-engine/mail-folder-cache.c @@ -32,6 +32,7 @@ #include <config.h> #endif +#include <errno.h> #include <string.h> #include <time.h> @@ -1152,12 +1153,18 @@ rename_folders (MailFolderCache *cache, e_filename_make_safe (newuri); oldfile = g_strdup_printf ("%s/custom_view-%s.xml", config_dir, olduri); newfile = g_strdup_printf ("%s/custom_view-%s.xml", config_dir, newuri); - g_rename (oldfile, newfile); + if (g_rename (oldfile, newfile) == -1) { + g_warning ("%s: Failed to rename '%s' to '%s': %s", G_STRFUNC, + oldfile, newfile, g_strerror (errno)); + } g_free (oldfile); g_free (newfile); oldfile = g_strdup_printf ("%s/current_view-%s.xml", config_dir, olduri); newfile = g_strdup_printf ("%s/current_view-%s.xml", config_dir, newuri); - g_rename (oldfile, newfile); + if (g_rename (oldfile, newfile) == -1) { + g_warning ("%s: Failed to rename '%s' to '%s': %s", G_STRFUNC, + oldfile, newfile, g_strerror (errno)); + } g_free (oldfile); g_free (newfile); g_free (olduri); diff --git a/libemail-engine/mail-mt.c b/libemail-engine/mail-mt.c index 19ed41b0dc..96f8e7267f 100644 --- a/libemail-engine/mail-mt.c +++ b/libemail-engine/mail-mt.c @@ -655,6 +655,8 @@ mail_call_main (mail_call_t type, ret = m->ret; mail_msg_unref (m); + /* the m->ap is freed on the message end, at do_free() above */ + /* coverity[missing_va_end] */ return ret; } diff --git a/libgnomecanvas/gnome-canvas-text.c b/libgnomecanvas/gnome-canvas-text.c index 89d8078702..eddc87ebf4 100644 --- a/libgnomecanvas/gnome-canvas-text.c +++ b/libgnomecanvas/gnome-canvas-text.c @@ -935,12 +935,15 @@ gnome_canvas_text_set_property (GObject *object, color_name = g_value_get_string (value); if (color_name) { GdkColor color; - gdk_color_parse (color_name, &color); - - text->rgba = ((color.red & 0xff00) << 16 | - (color.green & 0xff00) << 8 | - (color.blue & 0xff00) | - 0xff); + if (gdk_color_parse (color_name, &color)) { + text->rgba = ((color.red & 0xff00) << 16 | + (color.green & 0xff00) << 8 | + (color.blue & 0xff00) | + 0xff); + } else { + g_warning ("%s: Failed to parse color form string '%s'", + G_STRFUNC, color_name); + } } break; } diff --git a/mail/e-http-request.c b/mail/e-http-request.c index 5a2601c0e3..c12fd76ca1 100644 --- a/mail/e-http-request.c +++ b/mail/e-http-request.c @@ -197,12 +197,12 @@ handle_http_request (GSimpleAsyncResult *res, evo_uri = soup_uri_to_string (soup_uri, FALSE); if (camel_debug_start ("emformat:requests")) { - printf ("%s: looking for '%s'\n", G_STRFUNC, evo_uri); + printf ("%s: looking for '%s'\n", G_STRFUNC, evo_uri ? evo_uri : "[null]"); camel_debug_end (); } /* Remove the "evo-" prefix from scheme */ - uri_len = strlen (evo_uri); + uri_len = evo_uri ? strlen (evo_uri) : 0; uri = NULL; if (evo_uri && (uri_len > 5)) { diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c index bc30ad1d94..54e2ccbec7 100644 --- a/mail/e-mail-backend.c +++ b/mail/e-mail-backend.c @@ -28,6 +28,7 @@ #include "e-mail-backend.h" +#include <errno.h> #include <string.h> #include <glib/gstdio.h> #include <glib/gi18n-lib.h> @@ -638,7 +639,10 @@ mail_backend_folder_renamed_cb (MailFolderCache *folder_cache, newname = mail_backend_uri_to_evname (new_uri, cachenames[ii]); /* Ignore errors; doesn't matter. */ - g_rename (oldname, newname); + if (g_rename (oldname, newname) == -1) { + g_warning ("%s: Failed to rename '%s' to '%s': %s", G_STRFUNC, + oldname, newname, g_strerror (errno)); + } g_free (oldname); g_free (newname); diff --git a/mail/e-mail-config-page.c b/mail/e-mail-config-page.c index 54c71b1c0c..36f8c08835 100644 --- a/mail/e-mail-config-page.c +++ b/mail/e-mail-config-page.c @@ -191,6 +191,7 @@ e_mail_config_page_compare (GtkWidget *page_a, if (interface_a == NULL && interface_b != NULL) return 1; + /* coverity[var_deref_op] */ if (interface_a->sort_order < interface_b->sort_order) return -1; diff --git a/mail/e-mail-migrate.c b/mail/e-mail-migrate.c index e982b402ed..6a97b7342f 100644 --- a/mail/e-mail-migrate.c +++ b/mail/e-mail-migrate.c @@ -149,7 +149,9 @@ cp (const gchar *src, ut.actime = st.st_atime; ut.modtime = st.st_mtime; utime (dest, &ut); - chmod (dest, st.st_mode); + if (chmod (dest, st.st_mode) == -1) { + g_warning ("%s: Failed to chmod '%s': %s", G_STRFUNC, dest, g_strerror (errno)); + } return TRUE; @@ -264,7 +266,10 @@ em_rename_view_in_folder (gpointer data, oldname = g_build_filename (views_dir, filename, NULL); newname = g_build_filename (views_dir, newfile, NULL); - g_rename (oldname, newname); + if (g_rename (oldname, newname) == -1) { + g_warning ("%s: Failed to rename '%s' to '%s': %s", G_STRFUNC, + oldname, newname, g_strerror (errno)); + } g_checksum_free (checksum); g_free (oldname); diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c index 78f442d806..99a86a1f12 100644 --- a/mail/e-mail-reader-utils.c +++ b/mail/e-mail-reader-utils.c @@ -553,6 +553,9 @@ mail_reader_refresh_folder_cb (GObject *source_object, GError *local_error = NULL; folder = CAMEL_FOLDER (source_object); + if (!camel_folder_refresh_info_finish (folder, result, &local_error) && !local_error) + local_error = g_error_new_literal (CAMEL_ERROR, CAMEL_ERROR_GENERIC, _("Unknown error")); + async_context = (AsyncContext *) user_data; activity = async_context->activity; diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c index 9fbed51270..63ab511b0e 100644 --- a/mail/e-mail-reader.c +++ b/mail/e-mail-reader.c @@ -2943,7 +2943,6 @@ mail_reader_set_folder (EMailReader *reader, priv = E_MAIL_READER_GET_PRIVATE (reader); - backend = e_mail_reader_get_backend (reader); display = e_mail_reader_get_mail_display (reader); message_list = e_mail_reader_get_message_list (reader); diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c index 62405fdb5b..1b608906be 100644 --- a/mail/em-composer-utils.c +++ b/mail/em-composer-utils.c @@ -468,9 +468,10 @@ composer_presend_check_unwanted_html (EMsgComposer *composer, gboolean html_problem = FALSE; for (ii = 0; recipients[ii] != NULL; ii++) { - if (!e_destination_get_html_mail_pref (recipients[ii])) + if (!e_destination_get_html_mail_pref (recipients[ii])) { html_problem = TRUE; break; + } } if (html_problem) { @@ -2882,14 +2883,13 @@ em_utils_construct_composer_text (CamelSession *session, EMailPartList *parts_list) { gchar *text, *credits; - gboolean start_bottom = 0; g_return_val_if_fail (CAMEL_IS_SESSION (session), NULL); credits = attribution_format (message); text = em_utils_message_to_html ( session, message, credits, E_MAIL_FORMATTER_QUOTE_FLAG_CITE, - parts_list, start_bottom ? "<BR>" : NULL, NULL); + parts_list, NULL, NULL); g_free (credits); return text; diff --git a/mail/em-filter-rule.c b/mail/em-filter-rule.c index 595bef8bfe..8bd1f6d332 100644 --- a/mail/em-filter-rule.c +++ b/mail/em-filter-rule.c @@ -310,7 +310,10 @@ part_combobox_changed (GtkComboBox *combobox, /* traverse until reached index */ } - g_return_if_fail (part != NULL); + if (!part) { + g_warn_if_reached (); + return; + } g_return_if_fail (i == index); /* dont update if we haven't changed */ diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c index d0ec478dd5..e7342b7869 100644 --- a/mail/em-folder-properties.c +++ b/mail/em-folder-properties.c @@ -148,6 +148,18 @@ emfp_get_folder_item (EConfig *ec, guint ii, n_properties; gint row = 0; gboolean can_apply_filters = FALSE; + CamelStore *store; + CamelSession *session; + CamelFolderInfoFlags fi_flags = 0; + const gchar *folder_name; + MailFolderCache *folder_cache; + gboolean have_flags; + ESourceRegistry *registry; + EShell *shell; + EMailBackend *mail_backend; + EMailSendAccountOverride *account_override; + gchar *folder_uri, *account_uid; + GtkWidget *label; if (old) return old; @@ -210,32 +222,23 @@ emfp_get_folder_item (EConfig *ec, } } - if (context->folder != NULL) { - CamelStore *store; - CamelSession *session; - CamelFolderInfoFlags fi_flags = 0; - const gchar *folder_name; - MailFolderCache *folder_cache; - gboolean have_flags; - - store = camel_folder_get_parent_store (context->folder); - folder_name = camel_folder_get_full_name (context->folder); + store = camel_folder_get_parent_store (context->folder); + folder_name = camel_folder_get_full_name (context->folder); - session = camel_service_ref_session (CAMEL_SERVICE (store)); + session = camel_service_ref_session (CAMEL_SERVICE (store)); - folder_cache = e_mail_session_get_folder_cache ( - E_MAIL_SESSION (session)); + folder_cache = e_mail_session_get_folder_cache ( + E_MAIL_SESSION (session)); - have_flags = mail_folder_cache_get_folder_info_flags ( - folder_cache, store, folder_name, &fi_flags); + have_flags = mail_folder_cache_get_folder_info_flags ( + folder_cache, store, folder_name, &fi_flags); - can_apply_filters = - !CAMEL_IS_VEE_FOLDER (context->folder) && - have_flags && - (fi_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_INBOX; + can_apply_filters = + !CAMEL_IS_VEE_FOLDER (context->folder) && + have_flags && + (fi_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_INBOX; - g_object_unref (session); - } + g_object_unref (session); class = G_OBJECT_GET_CLASS (context->folder); properties = g_object_class_list_properties (class, &n_properties); @@ -277,56 +280,47 @@ emfp_get_folder_item (EConfig *ec, g_free (properties); /* add send-account-override setting widgets */ - if (context->folder != NULL) { - ESourceRegistry *registry; - EShell *shell; - EMailBackend *mail_backend; - EMailSendAccountOverride *account_override; - gchar *folder_uri, *account_uid; - GtkWidget *label; - - registry = e_shell_get_registry (e_shell_get_default ()); - - label = gtk_label_new_with_mnemonic (_("_Send Account Override:")); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_show (label); - gtk_table_attach ( - GTK_TABLE (table), label, - 0, 2, row, row + 1, - GTK_FILL, 0, 0, 0); - row++; - - widget = g_object_new ( - E_TYPE_MAIL_IDENTITY_COMBO_BOX, - "registry", registry, - "allow-none", TRUE, - NULL); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget); - gtk_widget_set_margin_left (widget, 12); - gtk_widget_show (widget); - gtk_table_attach ( - GTK_TABLE (table), widget, - 0, 2, row, row + 1, - GTK_FILL | GTK_EXPAND, 0, 0, 0); - row++; - - shell = e_shell_get_default (); - mail_backend = E_MAIL_BACKEND (e_shell_get_backend_by_name (shell, "mail")); - g_return_val_if_fail (mail_backend != NULL, table); - - account_override = e_mail_backend_get_send_account_override (mail_backend); - folder_uri = e_mail_folder_uri_from_folder (context->folder); - account_uid = e_mail_send_account_override_get_for_folder (account_override, folder_uri); - - gtk_combo_box_set_active_id (GTK_COMBO_BOX (widget), account_uid ? account_uid : ""); - g_object_set_data_full (G_OBJECT (widget), "sao-folder-uri", folder_uri, g_free); - - g_signal_connect ( - widget, "changed", - G_CALLBACK (mail_identity_combo_box_changed_cb), account_override); - - g_free (account_uid); - } + registry = e_shell_get_registry (e_shell_get_default ()); + + label = gtk_label_new_with_mnemonic (_("_Send Account Override:")); + gtk_widget_set_halign (label, GTK_ALIGN_START); + gtk_widget_show (label); + gtk_table_attach ( + GTK_TABLE (table), label, + 0, 2, row, row + 1, + GTK_FILL, 0, 0, 0); + row++; + + widget = g_object_new ( + E_TYPE_MAIL_IDENTITY_COMBO_BOX, + "registry", registry, + "allow-none", TRUE, + NULL); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget); + gtk_widget_set_margin_left (widget, 12); + gtk_widget_show (widget); + gtk_table_attach ( + GTK_TABLE (table), widget, + 0, 2, row, row + 1, + GTK_FILL | GTK_EXPAND, 0, 0, 0); + row++; + + shell = e_shell_get_default (); + mail_backend = E_MAIL_BACKEND (e_shell_get_backend_by_name (shell, "mail")); + g_return_val_if_fail (mail_backend != NULL, table); + + account_override = e_mail_backend_get_send_account_override (mail_backend); + folder_uri = e_mail_folder_uri_from_folder (context->folder); + account_uid = e_mail_send_account_override_get_for_folder (account_override, folder_uri); + + gtk_combo_box_set_active_id (GTK_COMBO_BOX (widget), account_uid ? account_uid : ""); + g_object_set_data_full (G_OBJECT (widget), "sao-folder-uri", folder_uri, g_free); + + g_signal_connect ( + widget, "changed", + G_CALLBACK (mail_identity_combo_box_changed_cb), account_override); + + g_free (account_uid); return table; } diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c index 27091e2f5c..aaf3488307 100644 --- a/mail/em-folder-tree.c +++ b/mail/em-folder-tree.c @@ -554,6 +554,8 @@ folder_tree_maybe_expand_row (EMFolderTreeModel *model, if (u) { gchar *c = strrchr (key, '/'); + /* 'c' cannot be NULL, because the above contructed 'key' has it there */ + /* coverity[dereference] */ *c = '\0'; folder_tree_expand_node (key, folder_tree); @@ -3036,12 +3038,10 @@ em_folder_tree_set_selected_list (EMFolderTree *folder_tree, g_slist_append (priv->select_uris, u); } - end = strrchr (expand_key, '/'); - do { + while (end = strrchr (expand_key, '/'), end) { folder_tree_expand_node (expand_key, folder_tree); *end = 0; - end = strrchr (expand_key, '/'); - } while (end); + } if (expand_only) folder_tree_free_select_uri (u); @@ -3108,33 +3108,39 @@ em_folder_tree_select_next_path (EMFolderTree *folder_tree, current_path = gtk_tree_model_get_path (model, &iter); do { - if (gtk_tree_model_iter_has_child (model, &iter)) { - gtk_tree_model_iter_children (model, &child, &iter); - path = gtk_tree_model_get_path (model, &child); - iter = child; - } else { - while (1) { - gboolean has_parent; + if (gtk_tree_model_iter_has_child (model, &iter)) { + if (!gtk_tree_model_iter_children (model, &child, &iter)) + break; + path = gtk_tree_model_get_path (model, &child); + iter = child; + } else { + while (1) { + gboolean has_parent; - has_parent = gtk_tree_model_iter_parent ( - model, &parent, &iter); + has_parent = gtk_tree_model_iter_parent ( + model, &parent, &iter); - if (gtk_tree_model_iter_next (model, &iter)) { - path = gtk_tree_model_get_path (model, &iter); - break; - } else { - if (has_parent) { - iter = parent; - } else { - /* Reached end. Wrapup*/ - gtk_tree_model_get_iter_first (model, &iter); + if (gtk_tree_model_iter_next (model, &iter)) { path = gtk_tree_model_get_path (model, &iter); break; + } else { + if (has_parent) { + iter = parent; + } else { + /* Reached end. Wrapup*/ + if (gtk_tree_model_get_iter_first (model, &iter)) + path = gtk_tree_model_get_path (model, &iter); + else + path = NULL; + break; + } } } + + if (!path) + break; } - } - gtk_tree_model_get (model, &iter, COL_UINT_UNREAD, &unread, -1); + gtk_tree_model_get (model, &iter, COL_UINT_UNREAD, &unread, -1); /* TODO : Flags here for better options */ } while (skip_read_folders && unread <=0 && @@ -3153,6 +3159,7 @@ em_folder_tree_select_next_path (EMFolderTree *folder_tree, } gtk_tree_view_scroll_to_cell (tree_view, path, NULL, TRUE, 0.5f, 0.0f); } + return; } diff --git a/mail/em-utils.c b/mail/em-utils.c index db68b96003..6669ef5aff 100644 --- a/mail/em-utils.c +++ b/mail/em-utils.c @@ -590,7 +590,6 @@ em_utils_read_messages_from_stream (CamelFolder *folder, while (camel_mime_parser_step (mp, NULL, NULL) == CAMEL_MIME_PARSER_STATE_FROM) { CamelMimeMessage *msg; - gboolean success; /* NB: de-from filter, once written */ msg = camel_mime_message_new (); @@ -1060,6 +1059,8 @@ em_utils_selection_set_urilist (GtkSelectionData *data, exit: g_free (tmpdir); + /* the 'fd' from the 'save_as_mbox' part is freed within the 'fstream' */ + /* coverity[leaked_handle] */ } /** @@ -1094,6 +1095,8 @@ em_utils_selection_get_urilist (GtkSelectionData *selection_data, if (url == NULL) continue; + /* 'fd', if set, is freed within the 'stream' */ + /* coverity[overwrite_var] */ if (strcmp (url->protocol, "file") == 0 && (fd = g_open (url->path, O_RDONLY | O_BINARY, 0)) != -1) { stream = camel_stream_fs_new_with_fd (fd); @@ -1107,6 +1110,9 @@ em_utils_selection_get_urilist (GtkSelectionData *selection_data, } g_strfreev (uris); + + /* 'fd', if set, is freed within the 'stream' */ + /* coverity[leaked_handle] */ } /* ********************************************************************** */ diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c index 5eb59e82f0..eb5746a746 100644 --- a/mail/importers/evolution-mbox-importer.c +++ b/mail/importers/evolution-mbox-importer.c @@ -374,8 +374,7 @@ mbox_get_preview (EImport *ei, mp = camel_mime_parser_new (); camel_mime_parser_scan_from (mp, TRUE); if (camel_mime_parser_init_with_fd (mp, fd) == -1) { - g_object_unref (mp); - return NULL; + goto cleanup; } while (camel_mime_parser_step (mp, NULL, NULL) == CAMEL_MIME_PARSER_STATE_FROM) { @@ -416,14 +415,18 @@ mbox_get_preview (EImport *ei, if (store) { GtkTreeView *tree_view; GtkTreeSelection *selection; - gboolean valid; preview = e_web_view_preview_new (); gtk_widget_show (preview); tree_view = e_web_view_preview_get_tree_view ( E_WEB_VIEW_PREVIEW (preview)); - g_return_val_if_fail (tree_view != NULL, NULL); + if (!tree_view) { + g_warn_if_reached (); + gtk_widget_destroy (preview); + preview = NULL; + goto cleanup; + } gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (store)); g_object_unref (store); @@ -443,16 +446,20 @@ mbox_get_preview (EImport *ei, E_WEB_VIEW_PREVIEW (preview)); create_preview_func (G_OBJECT (preview), &preview_widget); - g_return_val_if_fail (preview_widget != NULL, NULL); + if (!preview_widget) { + g_warn_if_reached (); + goto cleanup; + } e_web_view_preview_set_preview ( E_WEB_VIEW_PREVIEW (preview), preview_widget); gtk_widget_show (preview_widget); selection = gtk_tree_view_get_selection (tree_view); - valid = gtk_tree_model_get_iter_first ( - GTK_TREE_MODEL (store), &iter); - g_return_val_if_fail (valid, NULL); + if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter)) { + g_warn_if_reached (); + goto cleanup; + } gtk_tree_selection_select_iter (selection, &iter); g_signal_connect ( @@ -463,6 +470,11 @@ mbox_get_preview (EImport *ei, selection, E_WEB_VIEW_PREVIEW (preview)); } + cleanup: + g_object_unref (mp); + + /* 'fd' is freed together with 'mp' */ + /* coverity[leaked_handle] */ return preview; } diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c index 0af34a3861..ac432b58ef 100644 --- a/mail/importers/mail-importer.c +++ b/mail/importers/mail-importer.c @@ -203,6 +203,8 @@ fail1: /* FIXME Not passing a GCancellable or GError here. */ camel_folder_synchronize_sync (folder, FALSE, NULL, NULL); g_object_unref (folder); + /* 'fd' is freed together with 'mp' */ + /* coverity[leaked_handle] */ } static void diff --git a/mail/message-list.c b/mail/message-list.c index 89a473a7ff..b54af0fe68 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1233,7 +1233,7 @@ thread_select_foreach (ETreePath path, do { last = node; node = node->parent; - } while (!G_NODE_IS_ROOT (node)); + } while (node && !G_NODE_IS_ROOT (node)); g_ptr_array_add (tsi->paths, last); @@ -1719,14 +1719,14 @@ ml_tree_value_at_ex (ETreeModel *etm, /* Extract the single label from the hashtable. */ g_hash_table_iter_init (&iter, ld.labels_tag2iter); - g_hash_table_iter_next (&iter, NULL, (gpointer *) &label_defn); + if (g_hash_table_iter_next (&iter, NULL, (gpointer *) &label_defn)) { + e_mail_label_list_store_get_color (ld.store, label_defn, &colour_val); - e_mail_label_list_store_get_color (ld.store, label_defn, &colour_val); - - /* XXX Hack to avoid returning an allocated string. */ - colour_alloced = gdk_color_to_string (&colour_val); - colour = g_intern_string (colour_alloced); - g_free (colour_alloced); + /* XXX Hack to avoid returning an allocated string. */ + colour_alloced = gdk_color_to_string (&colour_val); + colour = g_intern_string (colour_alloced); + g_free (colour_alloced); + } } else if (camel_message_info_flags (msg_info) & CAMEL_MESSAGE_FLAGGED) { /* FIXME: extract from the important.xpm somehow. */ colour = "#A7453E"; @@ -5412,9 +5412,11 @@ message_list_regen_thread (GSimpleAsyncResult *simple, /* Handle search error or cancellation. */ - if (local_error == NULL) + if (local_error == NULL) { + /* coverity[unchecked_value] */ g_cancellable_set_error_if_cancelled ( cancellable, &local_error); + } if (local_error != NULL) { g_simple_async_result_take_error (simple, local_error); @@ -5506,9 +5508,8 @@ message_list_regen_done_cb (GObject *source_object, activity = regen_data->activity; - g_simple_async_result_propagate_error (simple, &local_error); - - if (e_activity_handle_cancellation (activity, local_error)) { + if (g_simple_async_result_propagate_error (simple, &local_error) && + e_activity_handle_cancellation (activity, local_error)) { g_error_free (local_error); return; diff --git a/modules/backup-restore/evolution-backup-tool.c b/modules/backup-restore/evolution-backup-tool.c index 3ca07ecea2..d164d8b216 100644 --- a/modules/backup-restore/evolution-backup-tool.c +++ b/modules/backup-restore/evolution-backup-tool.c @@ -98,7 +98,7 @@ static GOptionEntry options[] = { #define d(x) #define print_and_run(x) \ - G_STMT_START { g_message ("%s", x); system (x); } G_STMT_END + G_STMT_START { g_message ("%s", x); if (system (x) == -1) g_warning ("%s: Failed to execute '%s'", G_STRFUNC, (x)); } G_STMT_END static gboolean check (const gchar *filename, gboolean *is_new_format); diff --git a/modules/calendar/e-task-shell-view-private.c b/modules/calendar/e-task-shell-view-private.c index 39b90b51a7..bacb46be62 100644 --- a/modules/calendar/e-task-shell-view-private.c +++ b/modules/calendar/e-task-shell-view-private.c @@ -518,7 +518,7 @@ e_task_shell_view_private_dispose (ETaskShellView *task_shell_view) g_signal_handler_disconnect ( priv->settings, priv->settings_hide_completed_tasks_value_handler_id); - priv->settings_hide_completed_tasks_units_handler_id = 0; + priv->settings_hide_completed_tasks_value_handler_id = 0; } g_clear_object (&priv->task_shell_backend); diff --git a/modules/itip-formatter/e-mail-part-itip.c b/modules/itip-formatter/e-mail-part-itip.c index e4e6302822..447ff0d13b 100644 --- a/modules/itip-formatter/e-mail-part-itip.c +++ b/modules/itip-formatter/e-mail-part-itip.c @@ -88,16 +88,14 @@ mail_part_itip_bind_dom_element (EMailPart *part, if (!WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT (element)) { WebKitDOMNodeList *nodes; - guint ii, length; + guint length; nodes = webkit_dom_element_get_elements_by_tag_name ( element, "iframe"); length = webkit_dom_node_list_get_length (nodes); - for (ii = 0; ii < length; ii++) { + if (length > 0) element = WEBKIT_DOM_ELEMENT ( - webkit_dom_node_list_item (nodes, ii)); - break; - } + webkit_dom_node_list_item (nodes, 0)); } g_return_if_fail (WEBKIT_DOM_IS_HTML_IFRAME_ELEMENT (element)); diff --git a/modules/itip-formatter/itip-view.c b/modules/itip-formatter/itip-view.c index 1c193a4844..a490927501 100644 --- a/modules/itip-formatter/itip-view.c +++ b/modules/itip-formatter/itip-view.c @@ -4483,6 +4483,7 @@ get_uri_for_part (CamelMimePart *mime_part) /* Loading should be instantaneous since we already have * the full content, but we still have to crank the main * loop until the callback gets triggered. */ + /* coverity[loop_condition] */ while (!status.done) gtk_main_iteration (); @@ -4495,6 +4496,7 @@ get_uri_for_part (CamelMimePart *mime_part) /* We can't return until we have results, so crank * the main loop until the callback gets triggered. */ + /* coverity[loop_condition] */ while (!status.done) gtk_main_iteration (); @@ -6004,6 +6006,7 @@ itip_view_init_view (ItipView *view) case ICAL_METHOD_REQUEST: /* FIXME What about the name? */ itip_view_set_delegator (view, info->delegator_name ? info->delegator_name : info->delegator_address); + /* coverity[fallthrough] */ case ICAL_METHOD_PUBLISH: case ICAL_METHOD_ADD: case ICAL_METHOD_CANCEL: @@ -6019,13 +6022,13 @@ itip_view_init_view (ItipView *view) itip_view_set_organizer_sentby ( view, itip_strip_mailto (organizer.sentby)); - if (info->my_address) { - if (!(organizer.value && !g_ascii_strcasecmp (itip_strip_mailto (organizer.value), info->my_address)) - && !(organizer.sentby && !g_ascii_strcasecmp (itip_strip_mailto (organizer.sentby), info->my_address)) - && (info->to_address && g_ascii_strcasecmp (info->to_address, info->my_address))) - itip_view_set_proxy (view, info->to_name ? info->to_name : info->to_address); - } - break; + if (info->my_address) { + if (!(organizer.value && !g_ascii_strcasecmp (itip_strip_mailto (organizer.value), info->my_address)) + && !(organizer.sentby && !g_ascii_strcasecmp (itip_strip_mailto (organizer.sentby), info->my_address)) + && (info->to_address && g_ascii_strcasecmp (info->to_address, info->my_address))) + itip_view_set_proxy (view, info->to_name ? info->to_name : info->to_address); + } + break; case ICAL_METHOD_REPLY: case ICAL_METHOD_REFRESH: case ICAL_METHOD_COUNTER: diff --git a/modules/mail-config/e-mail-config-google-summary.c b/modules/mail-config/e-mail-config-google-summary.c index d1d51a4232..1517849ff8 100644 --- a/modules/mail-config/e-mail-config-google-summary.c +++ b/modules/mail-config/e-mail-config-google-summary.c @@ -240,7 +240,7 @@ mail_config_google_summary_constructed (GObject *object) widget = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (widget), 6); gtk_grid_set_column_spacing (GTK_GRID (widget), 6); - gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); g_object_bind_property ( extension, "applicable", diff --git a/modules/mail-config/e-mail-config-yahoo-summary.c b/modules/mail-config/e-mail-config-yahoo-summary.c index 2153f9cadf..0d6ea35b0a 100644 --- a/modules/mail-config/e-mail-config-yahoo-summary.c +++ b/modules/mail-config/e-mail-config-yahoo-summary.c @@ -235,7 +235,7 @@ mail_config_yahoo_summary_constructed (GObject *object) widget = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (widget), 6); gtk_grid_set_column_spacing (GTK_GRID (widget), 6); - gtk_box_pack_start (GTK_BOX (page), widget, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); g_object_bind_property ( extension, "applicable", diff --git a/modules/mail/e-mail-shell-view-private.c b/modules/mail/e-mail-shell-view-private.c index bb97910b26..c367f683c4 100644 --- a/modules/mail/e-mail-shell-view-private.c +++ b/modules/mail/e-mail-shell-view-private.c @@ -178,9 +178,6 @@ ctrl: goto exit; } - /* All branches jump past this. */ - g_return_val_if_reached (FALSE); - emit: /* Forward the key press to the EMailReader interface. */ g_signal_emit_by_name (mail_view, "key-press-event", event, &handled); diff --git a/plugins/attachment-reminder/attachment-reminder.c b/plugins/attachment-reminder/attachment-reminder.c index 52a03231b7..5ee371987e 100644 --- a/plugins/attachment-reminder/attachment-reminder.c +++ b/plugins/attachment-reminder/attachment-reminder.c @@ -622,9 +622,7 @@ e_plugin_lib_get_configure_widget (EPlugin *plugin) gtk_list_store_set (ui->store, &iter, CLUE_KEYWORD_COLUMN, clue_list[i], -1); } - if (clue_list) { - g_strfreev (clue_list); - } + g_strfreev (clue_list); /* Add the list here */ diff --git a/plugins/dbx-import/dbx-importer.c b/plugins/dbx-import/dbx-importer.c index 47a2bb94bf..5fe0863c31 100644 --- a/plugins/dbx-import/dbx-importer.c +++ b/plugins/dbx-import/dbx-importer.c @@ -446,7 +446,8 @@ dbx_read_mail_body (DbxImporter *m, guint32 buflen = 0x200; guchar *buffer = g_malloc (buflen); - ftruncate (bodyfd, 0); + if (ftruncate (bodyfd, 0) == -1) + g_warning ("%s: Failed to truncate file: %s", G_STRFUNC, g_strerror (errno)); lseek (bodyfd, 0, SEEK_SET); while (offset) { diff --git a/plugins/email-custom-header/email-custom-header.c b/plugins/email-custom-header/email-custom-header.c index 78364fa84f..c7e8f50b45 100644 --- a/plugins/email-custom-header/email-custom-header.c +++ b/plugins/email-custom-header/email-custom-header.c @@ -177,6 +177,7 @@ epech_header_options_cb (GtkDialog *dialog, switch (state) { case GTK_RESPONSE_OK: epech_get_widgets_data (mch); + /* coverity[fallthrough] */ case GTK_RESPONSE_CANCEL: gtk_widget_hide (priv->main); gtk_widget_destroy (priv->main); diff --git a/plugins/external-editor/external-editor.c b/plugins/external-editor/external-editor.c index 8f6e782919..97cb6abf5e 100644 --- a/plugins/external-editor/external-editor.c +++ b/plugins/external-editor/external-editor.c @@ -26,6 +26,8 @@ #include <config.h> #endif +#include <errno.h> + #include <mail/em-config.h> #include <mail/em-composer-utils.h> #include <e-msg-composer.h> @@ -374,7 +376,9 @@ external_editor_thread (gpointer user_data) g_idle_add ((GSourceFunc) update_composer_text, array); /* We no longer need that temporary file */ - g_remove (filename); + if (g_remove (filename) == -1) + g_warning ("%s: Failed to remove file '%s': %s", + G_STRFUNC, filename, g_strerror (errno)); g_free (filename); } } diff --git a/plugins/mail-to-task/mail-to-task.c b/plugins/mail-to-task/mail-to-task.c index b2c995e0e8..f4bfe1927a 100644 --- a/plugins/mail-to-task/mail-to-task.c +++ b/plugins/mail-to-task/mail-to-task.c @@ -852,23 +852,19 @@ do_mail_to_event (AsyncData *data) if (error != NULL) { report_error_idle (_("Cannot open calendar. %s"), error->message); } else if (e_client_is_readonly (E_CLIENT (client))) { - if (error != NULL) - report_error_idle ("Check readonly failed. %s", error->message); - else { - switch (data->source_type) { - case E_CAL_CLIENT_SOURCE_TYPE_EVENTS: - report_error_idle (_("Selected calendar is read only, thus cannot create event there. Select other calendar, please."), NULL); - break; - case E_CAL_CLIENT_SOURCE_TYPE_TASKS: - report_error_idle (_("Selected task list is read only, thus cannot create task there. Select other task list, please."), NULL); - break; - case E_CAL_CLIENT_SOURCE_TYPE_MEMOS: - report_error_idle (_("Selected memo list is read only, thus cannot create memo there. Select other memo list, please."), NULL); - break; - default: - g_assert_not_reached (); - break; - } + switch (data->source_type) { + case E_CAL_CLIENT_SOURCE_TYPE_EVENTS: + report_error_idle (_("Selected calendar is read only, thus cannot create event there. Select other calendar, please."), NULL); + break; + case E_CAL_CLIENT_SOURCE_TYPE_TASKS: + report_error_idle (_("Selected task list is read only, thus cannot create task there. Select other task list, please."), NULL); + break; + case E_CAL_CLIENT_SOURCE_TYPE_MEMOS: + report_error_idle (_("Selected memo list is read only, thus cannot create memo there. Select other memo list, please."), NULL); + break; + default: + g_assert_not_reached (); + break; } } else { gint i; @@ -1114,7 +1110,6 @@ mail_to_event (ECalClientSourceType source_type, GList *list, *iter; GtkWindow *parent; const gchar *extension_name; - GError *error = NULL; parent = e_mail_reader_get_window (reader); uids = e_mail_reader_get_selected_uids (reader); @@ -1193,16 +1188,6 @@ mail_to_event (ECalClientSourceType source_type, E_SOURCE_SELECTOR_DIALOG (dialog)); gtk_widget_destroy (dialog); - } else if (!source && default_source) { - source = default_source; - } else if (!source) { - e_notice ( - NULL, GTK_MESSAGE_ERROR, - _("No writable calendar is available.")); - - if (error != NULL) - g_error_free (error); - goto exit; } if (source) { @@ -1234,7 +1219,6 @@ mail_to_event (ECalClientSourceType source_type, } } -exit: g_object_unref (default_source); g_ptr_array_unref (uids); } diff --git a/plugins/mailing-list-actions/mailing-list-actions.c b/plugins/mailing-list-actions/mailing-list-actions.c index d9466013c2..35a379c771 100644 --- a/plugins/mailing-list-actions/mailing-list-actions.c +++ b/plugins/mailing-list-actions/mailing-list-actions.c @@ -229,7 +229,7 @@ emla_list_action_cb (CamelFolder *folder, /* get URL portion */ url = g_strndup (headerpos, end - headerpos); - if (strncmp (url, "mailto:", 6) == 0) { + if (url && strncmp (url, "mailto:", 6) == 0) { if (emla_action_headers[t].interactive) send_message_response = GTK_RESPONSE_NO; else @@ -253,7 +253,7 @@ emla_list_action_cb (CamelFolder *folder, } goto exit; - } else { + } else if (url && *url) { e_show_uri (window, url); goto exit; } diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c index 853a16cbd8..f16f476920 100644 --- a/plugins/pst-import/pst-importer.c +++ b/plugins/pst-import/pst-importer.c @@ -807,13 +807,14 @@ pst_import_folders (PstImporter *m, pst_desc_tree *topitem) { GHashTable *node_to_folderuri; /* pointers of hierarchy nodes, to them associated folder uris */ - pst_desc_tree *d_ptr; + pst_desc_tree *d_ptr = NULL; node_to_folderuri = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free); - d_ptr = topitem->child; - if (topitem) + if (topitem) { + d_ptr = topitem->child; g_hash_table_insert (node_to_folderuri, topitem, g_strdup (m->folder_uri)); + } /* Walk through folder tree */ while (d_ptr != NULL && (g_cancellable_is_cancelled (m->cancellable) == FALSE)) { @@ -866,7 +867,7 @@ pst_import_folders (PstImporter *m, break; } - d_ptr = d_ptr->next; + d_ptr = d_ptr ? d_ptr->next : NULL; } g_free (previous_folder); @@ -1865,6 +1866,8 @@ fill_calcomponent (PstImporter *m, case PST_FREEBUSY_FREE: /* mark as transparent and as confirmed */ e_cal_component_set_transparency (ec, E_CAL_COMPONENT_TRANSP_TRANSPARENT); + e_cal_component_set_status (ec, ICAL_STATUS_CONFIRMED); + break; case PST_FREEBUSY_BUSY: case PST_FREEBUSY_OUT_OF_OFFICE: e_cal_component_set_status (ec, ICAL_STATUS_CONFIRMED); diff --git a/plugins/publish-calendar/url-editor-dialog.c b/plugins/publish-calendar/url-editor-dialog.c index 04bbe5d9f9..d01c585307 100644 --- a/plugins/publish-calendar/url-editor-dialog.c +++ b/plugins/publish-calendar/url-editor-dialog.c @@ -72,6 +72,9 @@ create_uri (UrlEditorDialog *dialog) case TYPE_ANON_FTP: g_free (username); username = g_strdup ("anonymous"); + method = "ftp"; + break; + case TYPE_FTP: method = "ftp"; break; diff --git a/plugins/save-calendar/save-calendar.c b/plugins/save-calendar/save-calendar.c index c713612db8..e4228cb339 100644 --- a/plugins/save-calendar/save-calendar.c +++ b/plugins/save-calendar/save-calendar.c @@ -82,14 +82,14 @@ on_type_combobox_changed (GtkComboBox *combobox, extra_widget_foreach_hide, g_object_get_data (G_OBJECT (combobox), "format-box")); - gtk_combo_box_get_active_iter (combobox, &iter); + if (!gtk_combo_box_get_active_iter (combobox, &iter)) + return; gtk_tree_model_get ( model, &iter, DEST_HANDLER, &handler, -1); - if (handler->options_widget) - { + if (handler && handler->options_widget) { gtk_widget_show (handler->options_widget); } @@ -202,25 +202,30 @@ ask_destination_and_save (ESourceSelector *selector, if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) { gchar *tmp = NULL; - gtk_combo_box_get_active_iter (combo, &iter); - gtk_tree_model_get ( - model, &iter, - DEST_HANDLER, &handler, -1); + if (gtk_combo_box_get_active_iter (combo, &iter)) + gtk_tree_model_get ( + model, &iter, + DEST_HANDLER, &handler, -1); + else + handler = NULL; - dest_uri = gtk_file_chooser_get_uri - (GTK_FILE_CHOOSER (dialog)); + dest_uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog)); - tmp = strstr (dest_uri, handler->filename_ext); + if (handler) { + tmp = strstr (dest_uri, handler->filename_ext); - if (!(tmp && *(tmp + strlen (handler->filename_ext)) == '\0')) { + if (!(tmp && *(tmp + strlen (handler->filename_ext)) == '\0')) { - gchar *temp; - temp = g_strconcat (dest_uri, handler->filename_ext, NULL); - g_free (dest_uri); - dest_uri = temp; - } + gchar *temp; + temp = g_strconcat (dest_uri, handler->filename_ext, NULL); + g_free (dest_uri); + dest_uri = temp; + } - handler->save (handler, selector, type, dest_uri); + handler->save (handler, selector, type, dest_uri); + } else { + g_warn_if_reached (); + } } /* Free the handlers */ diff --git a/shell/e-convert-local-mail.c b/shell/e-convert-local-mail.c index 81c9e04771..ab773813d1 100644 --- a/shell/e-convert-local-mail.c +++ b/shell/e-convert-local-mail.c @@ -16,8 +16,11 @@ * */ +#ifdef HAVE_CONFIG_H #include <config.h> +#endif +#include <errno.h> #include <glib/gstdio.h> #include <camel/camel.h> @@ -168,8 +171,11 @@ rename_mbox_dir (ESource *mbox_source, g_file_test (old_mail_dir, G_FILE_TEST_EXISTS) && !g_file_test (new_mail_dir, G_FILE_TEST_EXISTS); - if (need_rename) - g_rename (old_mail_dir, new_mail_dir); + if (need_rename) { + if (g_rename (old_mail_dir, new_mail_dir) == -1) + g_warning ("%s: Failed to rename '%s' to '%s': %s", + G_STRFUNC, old_mail_dir, new_mail_dir, g_strerror (errno)); + } g_free (old_mail_dir); g_free (new_mail_dir); @@ -246,7 +252,9 @@ migrate_mbox_to_maildir (EShell *shell, path = g_build_filename (data_dir, "local", NULL); g_object_set (settings, "path", path, NULL); - g_mkdir (path, 0700); + if (g_mkdir (path, 0700) == -1) + g_warning ("%s: Failed to make directory '%s': %s", + G_STRFUNC, path, g_strerror (errno)); g_free (path); g_object_unref (settings); @@ -257,6 +265,7 @@ migrate_mbox_to_maildir (EShell *shell, ms.complete = FALSE; thread = g_thread_new (NULL, (GThreadFunc) migrate_stores, &ms); + /* coverity[loop_condition] */ while (!ms.complete) g_main_context_iteration (NULL, TRUE); diff --git a/shell/e-shell-migrate.c b/shell/e-shell-migrate.c index 20e96960e4..f7de962fde 100644 --- a/shell/e-shell-migrate.c +++ b/shell/e-shell-migrate.c @@ -19,12 +19,15 @@ * */ -#include "e-shell-migrate.h" - +#ifdef HAVE_CONFIG_H #include <config.h> +#endif + +#include <errno.h> #include <glib/gstdio.h> #include <libedataserver/libedataserver.h> +#include "e-shell-migrate.h" #include "evo-version.h" static gboolean @@ -157,7 +160,9 @@ change_dir_modes (const gchar *path) g_free (full_path); } - g_chmod (path, 0700); + if (g_chmod (path, 0700) == -1) + g_warning ("%s: Failed to chmod of '%s': %s", G_STRFUNC, path, g_strerror (errno)); + g_dir_close (dir); } diff --git a/shell/e-shell-utils.c b/shell/e-shell-utils.c index 97982cfbf9..1c3f8f88c0 100644 --- a/shell/e-shell-utils.c +++ b/shell/e-shell-utils.c @@ -156,7 +156,7 @@ e_shell_run_save_dialog (EShell *shell, gchar **flts = g_strsplit (filters, ";", -1); gint i; - for (i = 0; flts[i]; i++) { + for (i = 0; flts && flts[i]; i++) { GtkFileFilter *filter = gtk_file_filter_new (); gchar *flt = flts[i]; gchar *delim = strchr (flt, ':'), *next = NULL; diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index fe9724c46f..ca5cdb0b62 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -452,6 +452,7 @@ shell_view_get_property (GObject *object, g_value_set_object ( value, e_shell_view_get_shell_backend ( E_SHELL_VIEW (object))); + return; case PROP_SHELL_CONTENT: g_value_set_object ( diff --git a/shell/killev.c b/shell/killev.c index ea4ad2a8ce..2157cdbce8 100644 --- a/shell/killev.c +++ b/shell/killev.c @@ -163,7 +163,8 @@ main (gint argc, kill: #ifdef KILL_PROCESS_CMD - system (KILL_PROCESS_CMD " -QUIT evolution 2> /dev/null"); + if (system (KILL_PROCESS_CMD " -QUIT evolution 2> /dev/null") == -1) + g_warning ("%s: Failed to execute: '%s'", G_STRFUNC, KILL_PROCESS_CMD); #else g_printerr ("No \"kill\" command available.\n"); #endif diff --git a/smime/lib/e-cert-db.c b/smime/lib/e-cert-db.c index e8e91a427a..abb07be5d1 100644 --- a/smime/lib/e-cert-db.c +++ b/smime/lib/e-cert-db.c @@ -1094,6 +1094,7 @@ e_cert_db_import_certs_from_file (ECertDB *cert_db, rv = e_cert_db_import_email_cert (cert_db, buf, bytes_read, imported_certs, error); break; + /* coverity[dead_error_begin] */ default: rv = FALSE; break; |