evolution r36858 - in trunk/calendar: . gui



Author: mcrha
Date: Tue Dec  9 18:20:21 2008
New Revision: 36858
URL: http://svn.gnome.org/viewvc/evolution?rev=36858&view=rev

Log:
2008-12-09  Milan Crha  <mcrha redhat com>

	** Fix for bug #333224

	* gui/e-day-view.c: (e_day_view_on_text_item_event): Sanitize returned
	values from 'e_day_view_convert_position_in_main_canvas', because it
	can let the 'event_num' or 'day' set to -1, which means invalid value.



Modified:
   trunk/calendar/ChangeLog
   trunk/calendar/gui/e-day-view.c

Modified: trunk/calendar/gui/e-day-view.c
==============================================================================
--- trunk/calendar/gui/e-day-view.c	(original)
+++ trunk/calendar/gui/e-day-view.c	Tue Dec  9 18:20:21 2008
@@ -5864,6 +5864,15 @@
 			ECalendarViewPosition pos;
 			gboolean main_canvas = TRUE;
 
+			if (day_view->editing_event_num != -1)
+				break;
+
+			if (day_view->resize_event_num != -1)
+				break;
+
+			if (day_view->drag_event_num != -1)
+				break;
+
 			/* Convert the coords to the main canvas window, or return if the
 			   window is not found. */
 			if (!e_day_view_convert_event_coords (day_view, (GdkEvent*) event,
@@ -5892,15 +5901,11 @@
 			}
 
 			if (pos == E_CALENDAR_VIEW_POS_OUTSIDE)
-				return FALSE;
-
-			if (day_view->editing_event_num != -1)
 				break;
 
-			if (day_view->resize_event_num != -1)
-				break;
-
-			if (day_view->drag_event_num != -1)
+			/* even when returns position inside, or other, then the day and/or event_num
+			   can be unknown, thus check for this here, otherwise it will crash later */
+			if (day == -1 || event_num == -1)
 				break;
 
 			pevent = tooltip_get_view_event (day_view, day, event_num);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]