diff options
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; |