rpms/evolution-data-server/F-10 evolution-data-server-2.24.5-caldav-leak-fix.patch, NONE, 1.1 evolution-data-server-2.24.5-display-smime-sign-and-encrypt.patch, NONE, 1.1 evolution-data-server.spec, 1.248, 1.249

Matthew Barnes mbarnes at fedoraproject.org
Mon Apr 6 13:59:54 UTC 2009


Author: mbarnes

Update of /cvs/pkgs/rpms/evolution-data-server/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3231

Modified Files:
	evolution-data-server.spec 
Added Files:
	evolution-data-server-2.24.5-caldav-leak-fix.patch 
	evolution-data-server-2.24.5-display-smime-sign-and-encrypt.patch 
Log Message:

* Mon Apr 06 2009 Matthew Barnes <mbarnes at redhat.com> - 2.25.5-5.fc10
- Add patch for RH bug #492852 (fix S/MIME signature verification).
- Add patch for GNOME bug #573187 (CalDAV memory leaks).


evolution-data-server-2.24.5-caldav-leak-fix.patch:

--- NEW FILE evolution-data-server-2.24.5-caldav-leak-fix.patch ---
diff -up evolution-data-server-2.24.5/calendar/backends/caldav/e-cal-backend-caldav.c.caldav-leak-fix evolution-data-server-2.24.5/calendar/backends/caldav/e-cal-backend-caldav.c
--- evolution-data-server-2.24.5/calendar/backends/caldav/e-cal-backend-caldav.c.caldav-leak-fix	2009-01-29 13:55:21.000000000 +0100
+++ evolution-data-server-2.24.5/calendar/backends/caldav/e-cal-backend-caldav.c	2009-04-02 13:24:32.000000000 +0200
@@ -123,6 +123,7 @@ struct _ECalBackendCalDAVPrivate {
 #define DEBUG_MESSAGE "message"
 #define DEBUG_MESSAGE_HEADER "message:header"
 #define DEBUG_MESSAGE_BODY "message:body"
+#define DEBUG_SERVER_ITEMS "items"
 
 static gboolean caldav_debug_all = FALSE;
 static GHashTable *caldav_debug_table = NULL;
@@ -151,7 +152,7 @@ add_debug_key (const char *start, const 
 			     debug_key,
 			     debug_value);
 
-	g_debug ("Adding %s to enabled debugging keys", debug_key);
+	d(g_debug ("Adding %s to enabled debugging keys", debug_key));
 }
 
 static gpointer
@@ -164,7 +165,7 @@ caldav_debug_init_once (gpointer data)
 	if (dbg) {
 		const char *ptr;
 
-		g_debug ("Got debug env variable: [%s]", dbg);
+		d(g_debug ("Got debug env variable: [%s]", dbg));
 
 		caldav_debug_table = g_hash_table_new (g_str_hash,
 						       g_str_equal);
@@ -199,7 +200,7 @@ caldav_debug_init_once (gpointer data)
 }
 
 static void
-caldav_debug_init ()
+caldav_debug_init (void)
 {
 	static GOnce debug_once = G_ONCE_INIT;
 
@@ -237,7 +238,7 @@ caldav_debug_setup (SoupSession *session
 		level = SOUP_LOGGER_LOG_MINIMAL;
 
 	logger = soup_logger_new (level, DEBUG_MAX_BODY_SIZE);
-	soup_logger_attach (logger, session);
+	soup_session_add_feature (session, SOUP_SESSION_FEATURE (logger));
 	g_object_unref (logger);
 }
 
@@ -309,7 +310,10 @@ e_cal_component_set_href (ECalComponent 
 {
 	icalcomponent *icomp;
 
+	g_return_if_fail (href != NULL);
+
 	icomp = e_cal_component_get_icalcomponent (comp);
+	g_return_if_fail (icomp != NULL);
 
 	icomp_x_prop_set (icomp, X_E_CALDAV "HREF", href);
 }
@@ -322,6 +326,7 @@ e_cal_component_get_href (ECalComponent 
 
 	str = NULL;
 	icomp = e_cal_component_get_icalcomponent (comp);
+	g_return_val_if_fail (icomp != NULL, NULL);
 
 	str =  icomp_x_prop_get (icomp, X_E_CALDAV "HREF");
 
@@ -334,11 +339,12 @@ e_cal_component_set_etag (ECalComponent 
 {
 	icalcomponent *icomp;
 
+	g_return_if_fail (etag != NULL);
+
 	icomp = e_cal_component_get_icalcomponent (comp);
+	g_return_if_fail (icomp != NULL);
 
 	icomp_x_prop_set (icomp, X_E_CALDAV "ETAG", etag);
-
-
 }
 
 static char *
@@ -349,6 +355,7 @@ e_cal_component_get_etag (ECalComponent 
 
 	str = NULL;
 	icomp = e_cal_component_get_icalcomponent (comp);
+	g_return_val_if_fail (icomp != NULL, NULL);
 
 	str =  icomp_x_prop_get (icomp, X_E_CALDAV "ETAG");
 
@@ -542,13 +549,14 @@ parse_status_node (xmlNodePtr node, guin
 static char *
 xp_object_get_string (xmlXPathObjectPtr result)
 {
-	char *ret;
+	char *ret = NULL;
 
-	if (result == NULL || result->type != XPATH_STRING) {
-		return NULL;
-	}
+	if (result == NULL)
+		return ret;
 
-	ret = g_strdup ((char *) result->stringval);
+	if (result->type == XPATH_STRING) {
+		ret = g_strdup ((char *) result->stringval);
+	}
 
 	xmlXPathFreeObject (result);
 	return ret;
@@ -559,23 +567,26 @@ xp_object_get_string (xmlXPathObjectPtr 
 static char *
 xp_object_get_href (xmlXPathObjectPtr result)
 {
-	char *ret;
+	char *ret = NULL;
 	char *val;
 
-	if (result == NULL || result->type != XPATH_STRING) {
-		return NULL;
-	}
+	if (result == NULL)
+		return ret;
 
-	val = (char *) result->stringval;
+	if (result->type == XPATH_STRING) {
+		val = (char *) result->stringval;
 
-	if ((ret = g_strrstr (val, "/")) == NULL) {
-		ret = val;
-	} else {
-		ret++; /* skip the unwanted "/" */
-	}
+		if ((ret = g_strrstr (val, "/")) == NULL) {
+			ret = val;
+		} else {
+			ret++; /* skip the unwanted "/" */
+		}
 
-	ret = g_strdup (ret);
-	d(g_debug ("found href: %s", ret));
+		ret = g_strdup (ret);
+
+		if (caldav_debug_show (DEBUG_SERVER_ITEMS))
+			printf ("CalDAV found href: %s\n", ret);
+	}
 
 	xmlXPathFreeObject (result);
 	return ret;
@@ -585,16 +596,17 @@ xp_object_get_href (xmlXPathObjectPtr re
 static char *
 xp_object_get_etag (xmlXPathObjectPtr result)
 {
-	char *ret;
+	char *ret = NULL;
 	char *str;
 
-	if (result == NULL || result->type != XPATH_STRING) {
-		return NULL;
-	}
+	if (result == NULL)
+		return ret;
 
-	str = (char *) result->stringval;
+	if (result->type == XPATH_STRING) {
+		str = (char *) result->stringval;
 
-	ret = quote_etag (str);
+		ret = quote_etag (str);
+	}
 
 	xmlXPathFreeObject (result);
 	return ret;
@@ -604,20 +616,20 @@ static guint
 xp_object_get_status (xmlXPathObjectPtr result)
 {
 	gboolean res;
-	guint    ret;
-
+	guint    ret = 0;
 
-	if (result == NULL || result->type != XPATH_STRING) {
-		return 0;
-	}
+	if (result == NULL)
+		return ret;
 
-	res = soup_headers_parse_status_line ((char *) result->stringval,
-					      NULL,
-					      &ret,
-					      NULL);
+	if (result->type == XPATH_STRING) {
+		res = soup_headers_parse_status_line ((char *) result->stringval,
+							NULL,
+							&ret,
+							NULL);
 
-	if (res != TRUE) {
-		ret = 0;
+		if (!res) {
+			ret = 0;
+		}
 	}
 
 	xmlXPathFreeObject (result);
@@ -628,13 +640,14 @@ xp_object_get_status (xmlXPathObjectPtr 
 static int
 xp_object_get_number (xmlXPathObjectPtr result)
 {
-	int ret;
+	int ret = -1;
 
-	if (result == NULL || result->type != XPATH_STRING) {
-		return -1;
-	}
+	if (result == NULL)
+		return ret;
 
-	ret = result->boolval;
+	if (result->type == XPATH_STRING) {
+		ret = result->boolval;
+	}
 
 	xmlXPathFreeObject (result);
 	return ret;
@@ -750,6 +763,8 @@ parse_report_response (SoupMessage *soup
 	}
 
 out:
+	if (result != NULL)
+		xmlXPathFreeObject (result);
 	xmlXPathFreeContext (xpctx);
 	xmlFreeDoc (doc);
 	return res;
@@ -928,6 +943,8 @@ caldav_server_open_calendar (ECalBackend
 	/* FIXME: setup text_uri */
 
 	message = soup_message_new (SOUP_METHOD_OPTIONS, priv->uri);
+	if (message == NULL)
+		return GNOME_Evolution_Calendar_NoSuchCal;
 	soup_message_headers_append (message->request_headers,
 				     "User-Agent", "Evolution/" VERSION);
 
@@ -985,14 +1002,18 @@ caldav_server_list_objects (ECalBackendC
 	gboolean             result;
 
 	priv = E_CAL_BACKEND_CALDAV_GET_PRIVATE (cbdav);
+	/* Allocate the soup message */
+	message = soup_message_new ("REPORT", priv->uri);
+	if (message == NULL)
+		return FALSE;
 
 	/* Maybe we should just do a g_strdup_printf here? */
 	/* Prepare request body */
 	doc = xmlNewDoc ((xmlChar *) "1.0");
-	root = xmlNewNode (NULL, (xmlChar *) "calendar-query");
-	nscd = xmlNewNs (root, (xmlChar *) "urn:ietf:params:xml:ns:caldav",
-			 (xmlChar *) "C");
+	root = xmlNewDocNode (doc, NULL, (xmlChar *) "calendar-query", NULL);
+	nscd = xmlNewNs (root, (xmlChar *) "urn:ietf:params:xml:ns:caldav", (xmlChar *) "C");
 	xmlSetNs (root, nscd);
+	xmlDocSetRootElement (doc, root);
 
 	/* Add webdav tags */
 	nsdav = xmlNewNs (root, (xmlChar *) "DAV:", (xmlChar *) "D");
@@ -1013,7 +1034,6 @@ caldav_server_list_objects (ECalBackendC
 	xmlOutputBufferFlush (buf);
 
 	/* Prepare the soup message */
-	message = soup_message_new ("REPORT", priv->uri);
 	soup_message_headers_append (message->request_headers,
 				     "User-Agent", "Evolution/" VERSION);
 	soup_message_headers_append (message->request_headers,
@@ -1034,7 +1054,9 @@ caldav_server_list_objects (ECalBackendC
 
 	/* Check the result */
 	if (message->status_code != 207) {
-		g_warning ("Sever did not response with 207, but with code %d\n", message->status_code);
+		g_warning ("Server did not response with 207, but with code %d (%s)", message->status_code, soup_status_get_phrase (message->status_code) ? soup_status_get_phrase (message->status_code) : "Unknown code");
+
+		g_object_unref (message);
 		return FALSE;
 	}
 
@@ -1062,18 +1084,23 @@ caldav_server_get_object (ECalBackendCal
 
 	uri = caldav_generate_uri (cbdav, object->href);
 	message = soup_message_new (SOUP_METHOD_GET, uri);
-	g_free (uri);
+	if (message == NULL) {
+		g_free (uri);
+		return GNOME_Evolution_Calendar_NoSuchCal;
+	}
 
 	soup_message_headers_append (message->request_headers,
 				     "User-Agent", "Evolution/" VERSION);
 
 	send_and_handle_redirection (priv->session, message, NULL);
 
-	if (! SOUP_STATUS_IS_SUCCESSFUL (message->status_code)) {
-		result = status_code_to_result (message->status_code);
+	if (!SOUP_STATUS_IS_SUCCESSFUL (message->status_code)) {
+		guint status_code = message->status_code;
 		g_object_unref (message);
-		g_warning ("Could not fetch object from server\n");
-		return result;
+
+		g_warning ("Could not fetch object '%s' from server, status:%d (%s)", uri, status_code, soup_status_get_phrase (status_code) ? soup_status_get_phrase (status_code) : "Unknown code");
+		g_free (uri);
+		return status_code_to_result (status_code);
 	}
 
 	hdr = soup_message_headers_get (message->response_headers, "Content-Type");
@@ -1081,7 +1108,8 @@ caldav_server_get_object (ECalBackendCal
 	if (hdr == NULL || g_ascii_strncasecmp (hdr, "text/calendar", 13)) {
 		result = GNOME_Evolution_Calendar_InvalidObject;
 		g_object_unref (message);
-		g_warning ("Object to fetch not of type text/calendar");
+		g_warning ("Object to fetch '%s' not of type text/calendar", uri);
+		g_free (uri);
 		return result;
 	}
 
@@ -1091,8 +1119,9 @@ caldav_server_get_object (ECalBackendCal
 		g_free (object->etag);
 		object->etag = quote_etag (hdr);
 	} else if (!object->etag) {
-		g_warning ("UUHH no ETag, now that's bad!");
+		g_warning ("UUHH no ETag, now that's bad! (at '%s')", uri);
 	}
+	g_free (uri);
 
 	g_free (object->cdata);
 	object->cdata = g_strdup (message->response_body->data);
@@ -1119,6 +1148,8 @@ caldav_server_put_object (ECalBackendCal
 	uri = caldav_generate_uri (cbdav, object->href);
 	message = soup_message_new (SOUP_METHOD_PUT, uri);
 	g_free (uri);
+	if (message == NULL)
+		return GNOME_Evolution_Calendar_NoSuchCal;
 
 	soup_message_headers_append (message->request_headers,
 				     "User-Agent", "Evolution/" VERSION);
@@ -1159,15 +1190,25 @@ caldav_server_put_object (ECalBackendCal
 	result = status_code_to_result (message->status_code);
 
 	if (result == GNOME_Evolution_Calendar_Success) {
-		hdr = soup_message_headers_get (message->response_headers,
-						"ETag");
-	}
+		hdr = soup_message_headers_get (message->response_headers, "ETag");
+		if (hdr != NULL) {
+			g_free (object->etag);
+			object->etag = quote_etag (hdr);
+		} else {
+			/* no ETag header returned, check for it with a GET */
+			hdr = soup_message_headers_get (message->response_headers, "Location");
+			if (hdr) {
+				/* reflect possible href change first */
+				char *file = strrchr (hdr, '/');
+
+				if (file) {
+					g_free (object->href);
+					object->href = soup_uri_encode (file + 1, NULL);
+				}
+			}
 
-	if (hdr != NULL) {
-		g_free (object->etag);
-		object->etag = quote_etag (hdr);
-	} else {
-		g_warning ("Ups no Etag in put response");
+			result = caldav_server_get_object (cbdav, object);
+		}
 	}
 
 	g_object_unref (message);
@@ -1190,6 +1231,8 @@ caldav_server_delete_object (ECalBackend
 	uri = caldav_generate_uri (cbdav, object->href);
 	message = soup_message_new (SOUP_METHOD_DELETE, uri);
 	g_free (uri);
+	if (message == NULL)
+		return GNOME_Evolution_Calendar_NoSuchCal;
 
 	soup_message_headers_append (message->request_headers,
 				     "User-Agent", "Evolution/" VERSION);
@@ -1230,10 +1273,8 @@ synchronize_object (ECalBackendCalDAV *c
 	res  = TRUE;
 	result  = caldav_server_get_object (cbdav, object);
 
-	if (result != GNOME_Evolution_Calendar_Success) {
-		g_warning ("Could not fetch object from server");
+	if (result != GNOME_Evolution_Calendar_Success)
 		return FALSE;
-	}
 
 	priv = E_CAL_BACKEND_CALDAV_GET_PRIVATE (cbdav);
 
@@ -1242,31 +1283,34 @@ synchronize_object (ECalBackendCalDAV *c
 	bkend = E_CAL_BACKEND (cbdav);
 
 	if (kind == ICAL_VCALENDAR_COMPONENT) {
-
 		kind = e_cal_backend_get_kind (bkend);
 		subcomp = icalcomponent_get_first_component (icomp, kind);
 
-		comp = e_cal_component_new ();
-		res = e_cal_component_set_icalcomponent (comp,
+		if (!subcomp) {
+			res = FALSE;
+		} else {
+			comp = e_cal_component_new ();
+			res = e_cal_component_set_icalcomponent (comp,
 						   icalcomponent_new_clone (subcomp));
-		if (res == TRUE) {
-			icaltimezone *zone = icaltimezone_new ();
+			if (res) {
+				icaltimezone *zone = icaltimezone_new ();
 
-			e_cal_component_set_href (comp, object->href);
-			e_cal_component_set_etag (comp, object->etag);
+				e_cal_component_set_href (comp, object->href);
+				e_cal_component_set_etag (comp, object->etag);
 
-			for (subcomp = icalcomponent_get_first_component (icomp, ICAL_VTIMEZONE_COMPONENT);
-			    subcomp;
-			    subcomp = icalcomponent_get_next_component (icomp, ICAL_VTIMEZONE_COMPONENT)) {
-				/* copy timezones of the component to our cache to have it available later */
-				if (icaltimezone_set_component (zone, subcomp))
-					e_cal_backend_cache_put_timezone (priv->cache, zone);
-			}
+				for (subcomp = icalcomponent_get_first_component (icomp, ICAL_VTIMEZONE_COMPONENT);
+				    subcomp;
+				    subcomp = icalcomponent_get_next_component (icomp, ICAL_VTIMEZONE_COMPONENT)) {
+					/* copy timezones of the component to our cache to have it available later */
+					if (icaltimezone_set_component (zone, subcomp))
+						e_cal_backend_cache_put_timezone (priv->cache, zone);
+				}
 
-			icaltimezone_free (zone, TRUE);
-		} else {
-			g_object_unref (comp);
-			comp = NULL;
+				icaltimezone_free (zone, TRUE);
+			} else {
+				g_object_unref (comp);
+				comp = NULL;
+			}
 		}
 	} else {
 		res = FALSE;
@@ -1367,8 +1411,10 @@ synchronize_cache (ECalBackendCalDAV *cb
 			res = synchronize_object (cbdav, object, ccomp, &created, &modified);
 		}
 
-		if (res == TRUE) {
+		if (res) {
 			cobjs = g_list_remove (cobjs, ccomp);
+			if (ccomp)
+				g_object_unref (ccomp);
 		}
 
 		caldav_object_free (object, FALSE);
@@ -1475,6 +1521,8 @@ synch_slave_loop (gpointer data)
 	/* signal we are done */
 	g_cond_signal (priv->slave_gone_cond);
 
+	priv->synch_slave = NULL;
+
 	/* we got killed ... */
 	g_mutex_unlock (priv->lock);
 	return NULL;
@@ -1570,14 +1618,13 @@ initialize_backend (ECalBackendCalDAV *c
 	}
 
 	os_val = e_source_get_property (source, "auth");
-
-	if (os_val) {
-		priv->need_auth = TRUE;
-	}
+	priv->need_auth = os_val != NULL;
 
 	os_val = e_source_get_property(source, "ssl");
 	uri = e_cal_backend_get_uri (E_CAL_BACKEND (cbdav));
 
+	g_free (priv->uri);
+	priv->uri = NULL;
 	if (g_str_has_prefix (uri, "caldav://")) {
 		const char *proto;
 
@@ -1756,6 +1803,7 @@ pack_cobj (ECalBackendCalDAV *cbdav, ECa
 	}
 
 	objstr = icalcomponent_as_ical_string (calcomp);
+	icalcomponent_free (calcomp);
 
 	g_assert (objstr);
 
@@ -1853,7 +1901,6 @@ caldav_create_object (ECalBackendSync  *
 
 	if (online) {
 		CalDAVObject object;
-		const char *id = NULL;
 
 		href = e_cal_component_gen_href (comp);
 		
@@ -1862,12 +1909,12 @@ caldav_create_object (ECalBackendSync  *
 		object.cdata = pack_cobj (cbdav, comp);
 
 		status = caldav_server_put_object (cbdav, &object);
+		if (status == GNOME_Evolution_Calendar_Success) {
+			e_cal_component_set_href (comp, object.href);
+			e_cal_component_set_etag (comp, object.etag);
+		}
 
-		e_cal_component_get_uid (comp, &id);
-		e_cal_component_set_href (comp, object.href);
-		e_cal_component_set_etag (comp, object.etag);
 		caldav_object_free (&object, FALSE);
-
 	} else {
 		/* mark component as out of synch */
 		e_cal_component_set_synch_state (comp,
@@ -1949,11 +1996,12 @@ caldav_modify_object (ECalBackendSync  *
 		object.cdata = pack_cobj (cbdav, comp);
 
 		status = caldav_server_put_object (cbdav, &object);
+		if (status == GNOME_Evolution_Calendar_Success) {
+			e_cal_component_set_href (comp, object.href);
+			e_cal_component_set_etag (comp, object.etag);
+		}
 
-		e_cal_component_set_href (comp, object.href);
-		e_cal_component_set_etag (comp, object.etag);
 		caldav_object_free (&object, FALSE);
-
 	} else {
 		/* mark component as out of synch */
 		e_cal_component_set_synch_state (comp,
@@ -2032,8 +2080,10 @@ caldav_remove_object (ECalBackendSync  *
 			caldav_object.cdata = pack_cobj (cbdav, cache_comp);
 
 			status = caldav_server_put_object (cbdav, &caldav_object);
-			e_cal_component_set_href (cache_comp, caldav_object.href);
-			e_cal_component_set_etag (cache_comp, caldav_object.etag);
+			if (status == GNOME_Evolution_Calendar_Success) {
+				e_cal_component_set_href (cache_comp, caldav_object.href);
+				e_cal_component_set_etag (cache_comp, caldav_object.etag);
+			}
 		} else
 			status = caldav_server_delete_object (cbdav, &caldav_object);
 
@@ -2258,11 +2308,11 @@ process_object (ECalBackendCalDAV   *cbd
 							      rid);
 
 			id = e_cal_component_get_id (ccomp);
-
 			e_cal_backend_notify_object_removed (E_CAL_BACKEND (backend),
 							     id,
 							     oostr,
 							     ostr);
+			e_cal_component_free_id (id);
 			break;
 
 		default:
@@ -2271,7 +2321,6 @@ process_object (ECalBackendCalDAV   *cbd
 			break;
 	}
 
-	g_object_unref (ecomp);
 	g_free (ostr);
 	g_free (oostr);
 	g_free (rid);
@@ -2323,9 +2372,13 @@ caldav_receive_objects (ECalBackendSync 
 
 	if (status == GNOME_Evolution_Calendar_Success) {
 		for (iter = timezones; iter; iter = iter->next) {
-			icaltimezone *zone = iter->data;
+			icaltimezone *zone = icaltimezone_new ();
+
+			if (icaltimezone_set_component (zone, iter->data))
+				e_cal_backend_cache_put_timezone (priv->cache, zone);
+			else
+				icalcomponent_free (iter->data);
 
-			e_cal_backend_cache_put_timezone (priv->cache, zone);
 			icaltimezone_free (zone, TRUE);
 		}
 	}

evolution-data-server-2.24.5-display-smime-sign-and-encrypt.patch:

--- NEW FILE evolution-data-server-2.24.5-display-smime-sign-and-encrypt.patch ---
diff -up evolution-data-server-2.24.5/camel/camel-smime-context.c.display-smime-sign-and-encrypt evolution-data-server-2.24.5/camel/camel-smime-context.c
--- evolution-data-server-2.24.5/camel/camel-smime-context.c.display-smime-sign-and-encrypt	2009-04-02 13:11:58.000000000 +0200
+++ evolution-data-server-2.24.5/camel/camel-smime-context.c	2009-04-02 13:13:14.000000000 +0200
@@ -969,7 +969,8 @@ sm_decrypt(CamelCipherContext *context, 
 	camel_data_wrapper_construct_from_stream((CamelDataWrapper *)opart, ostream);
 
 	if (NSS_CMSMessage_IsSigned(cmsg)) {
-		valid = sm_verify_cmsg(context, cmsg, NULL, ex);
+		camel_stream_reset (ostream);
+		valid = sm_verify_cmsg (context, cmsg, ostream, ex);
 	} else {
 		valid = camel_cipher_validity_new();
 		valid->encrypt.description = g_strdup(_("Encrypted content"));


Index: evolution-data-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/evolution-data-server/F-10/evolution-data-server.spec,v
retrieving revision 1.248
retrieving revision 1.249
diff -u -r1.248 -r1.249
--- evolution-data-server.spec	17 Mar 2009 18:15:02 -0000	1.248
+++ evolution-data-server.spec	6 Apr 2009 13:59:24 -0000	1.249
@@ -29,7 +29,7 @@
 
 Name: evolution-data-server
 Version: 2.24.5
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: LGPLv2
 Group: System Environment/Libraries
 Summary: Backend data server for Evolution
@@ -60,6 +60,12 @@
 # RH bug #487685 / CVE-2009-0582
 Patch16: evolution-data-server-2.24.5-CVE-2009-0582.patch
 
+# RH bug #492852 / GNOME bug #564465
+Patch17: evolution-data-server-2.24.5-display-smime-sign-and-encrypt.patch
+
+# GNOME bug #573187 (plus other changes)
+Patch18: evolution-data-server-2.24.5-caldav-leak-fix.patch
+
 ### Build Dependencies ###
 
 BuildRequires: GConf2-devel
@@ -141,6 +147,8 @@
 %patch14 -p1 -b .sqlite-fsync-rework
 %patch15 -p1 -b .CVE-2009-0582
 %patch16 -p1 -b .CVE-2009-0587
+%patch17 -p1 -b .display-smime-sign-and-encrypt
+%patch18 -p1 -b .caldav-leak-fix
 
 mkdir -p krb5-fakeprefix/include
 mkdir -p krb5-fakeprefix/lib
@@ -386,6 +394,10 @@
 %{_datadir}/gtk-doc/html/libedataserverui
 
 %changelog
+* Mon Apr 06 2009 Matthew Barnes <mbarnes at redhat.com> - 2.25.5-5.fc10
+- Add patch for RH bug #492852 (fix S/MIME signature verification).
+- Add patch for GNOME bug #573187 (CalDAV memory leaks).
+
 * Tue Mar 17 2009 Matthew Barnes <mbarnes at redhat.com> - 2.25.5-4.fc10
 - Add patch for RH bug #484925 (CVE-2009-0547, S/MIME signatures).
 - Add patch for RH bug #487685 (CVE-2009-0582, NTLM authentication).




More information about the fedora-extras-commits mailing list