[evolution-patches] 54713
- From: JP Rosevear <jpr ximian com>
- To: evolution-patches ximian com
- Subject: [evolution-patches] 54713
- Date: Tue, 30 Mar 2004 09:35:18 -0500
This should fix the crash, there are other issues I'm working on for the
B&A backend as well.
-JP
--
JP Rosevear <jpr ximian com>
Ximian, Inc.
? libecal/old.c
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/ChangeLog,v
retrieving revision 1.230
diff -u -r1.230 ChangeLog
--- ChangeLog 29 Mar 2004 14:47:25 -0000 1.230
+++ ChangeLog 30 Mar 2004 14:41:32 -0000
@@ -1,3 +1,12 @@
+2004-03-30 JP Rosevear <jpr ximian com>
+
+ Fixes #54713
+
+ * libecal/e-cal.c (e_cal_get_object): only try to parse the string
+ if the status is good
+ (e_cal_get_timezone): ditto
+ (e_cal_get_default_object): ditto
+
2004-03-29 Harish K <kharish novell com>
* backends/groupwise/e-cal-backend-utils.c
(start_freebusy_session) : send UTC time to server instead of
Index: libecal/e-cal.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/libecal/e-cal.c,v
retrieving revision 1.51
diff -u -r1.51 e-cal.c
--- libecal/e-cal.c 26 Mar 2004 15:44:13 -0000 1.51
+++ libecal/e-cal.c 30 Mar 2004 14:41:32 -0000
@@ -2299,10 +2299,13 @@
g_cond_wait (our_op->cond, our_op->mutex);
status = our_op->status;
- if (status)
+ if (status) {
*icalcomp = NULL;
- else
+ } else {
*icalcomp = icalparser_parse_string (our_op->string);
+ if (!(*icalcomp))
+ status = E_CALENDAR_STATUS_INVALID_OBJECT;
+ }
g_free (our_op->string);
e_calendar_remove_op (ecal, our_op);
@@ -2378,8 +2381,13 @@
g_cond_wait (our_op->cond, our_op->mutex);
status = our_op->status;
- *icalcomp = icalparser_parse_string (our_op->string);
- /* FIXME if the parse fails its an error */
+ if (status) {
+ *icalcomp = NULL;
+ } else {
+ *icalcomp = icalparser_parse_string (our_op->string);
+ if (!(*icalcomp))
+ status = E_CALENDAR_STATUS_INVALID_OBJECT;
+ }
g_free (our_op->string);
e_calendar_remove_op (ecal, our_op);
@@ -3640,18 +3648,22 @@
successful response will notity us via our cv */
g_cond_wait (our_op->cond, our_op->mutex);
- status = our_op->status;
-
- icalcomp = icalparser_parse_string (our_op->string);
+ status = our_op->status;
+ if (status) {
+ icalcomp = NULL;
+ } else {
+ icalcomp = icalparser_parse_string (our_op->string);
+ if (!icalcomp)
+ status = E_CALENDAR_STATUS_INVALID_OBJECT;
+ }
g_free (our_op->string);
- /* FIXME Invalid object status? */
if (!icalcomp) {
e_calendar_remove_op (ecal, our_op);
g_mutex_unlock (our_op->mutex);
e_calendar_free_op (our_op);
- E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_OBJECT_NOT_FOUND, error);
+ E_CALENDAR_CHECK_STATUS (status, error);
}
*zone = icaltimezone_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]