Hello community, here is the log from the commit of package evolution-ews for openSUSE:Factory checked in at 2014-09-30 19:36:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/evolution-ews (Old) and /work/SRC/openSUSE:Factory/.evolution-ews.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-ews" Changes: -------- --- /work/SRC/openSUSE:Factory/evolution-ews/evolution-ews.changes 2014-08-14 14:58:34.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.evolution-ews.new/evolution-ews.changes 2014-09-30 19:36:48.000000000 +0200 @@ -1,0 +2,6 @@ +Mon Sep 8 17:42:48 UTC 2014 - zai...@opensuse.org + +- Update to version 3.12.6: + + Bugs Fixed: bgo#735799, bgo#735801. + +------------------------------------------------------------------- Old: ---- evolution-ews-3.12.5.tar.xz New: ---- evolution-ews-3.12.6.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ evolution-ews.spec ++++++ --- /var/tmp/diff_new_pack.TC1ybX/_old 2014-09-30 19:36:49.000000000 +0200 +++ /var/tmp/diff_new_pack.TC1ybX/_new 2014-09-30 19:36:49.000000000 +0200 @@ -19,7 +19,7 @@ Name: evolution-ews # This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in. %define evolution_base_version 3.12 -Version: 3.12.5 +Version: 3.12.6 Release: 0 Summary: Exchange Connector for Evolution, compatible with Exchange 2007 and later License: LGPL-2.1 ++++++ evolution-ews-3.12.5.tar.xz -> evolution-ews-3.12.6.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/NEWS new/evolution-ews-3.12.6/NEWS --- old/evolution-ews-3.12.5/NEWS 2014-08-11 10:06:24.000000000 +0200 +++ new/evolution-ews-3.12.6/NEWS 2014-09-08 09:33:31.000000000 +0200 @@ -1,3 +1,10 @@ +Evolution-EWS 3.12.6 2014-09-08 +------------------------------- + +Bug Fixes: + Bug 735799 - Workaround crash for messages with no item ID (Milan Crha) + Bug 735801 - Use-after-free in e_book_backend_ews_dispose() after resume (Milan Crha) + Evolution-EWS 3.12.5 2014-08-11 ------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/configure new/evolution-ews-3.12.6/configure --- old/evolution-ews-3.12.5/configure 2014-08-11 10:06:52.000000000 +0200 +++ new/evolution-ews-3.12.6/configure 2014-09-08 09:34:03.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for evolution-ews 3.12.5. +# Generated by GNU Autoconf 2.69 for evolution-ews 3.12.6. # # Report bugs to <http://bugzilla.gnome.org/browse.cgi?product=evolution-ews>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='evolution-ews' PACKAGE_TARNAME='evolution-ews' -PACKAGE_VERSION='3.12.5' -PACKAGE_STRING='evolution-ews 3.12.5' +PACKAGE_VERSION='3.12.6' +PACKAGE_STRING='evolution-ews 3.12.6' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/browse.cgi?product=evolution-ews' PACKAGE_URL='' @@ -1499,7 +1499,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures evolution-ews 3.12.5 to adapt to many kinds of systems. +\`configure' configures evolution-ews 3.12.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1569,7 +1569,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of evolution-ews 3.12.5:";; + short | recursive ) echo "Configuration of evolution-ews 3.12.6:";; esac cat <<\_ACEOF @@ -1768,7 +1768,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -evolution-ews configure 3.12.5 +evolution-ews configure 3.12.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2137,7 +2137,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by evolution-ews $as_me 3.12.5, which was +It was created by evolution-ews $as_me 3.12.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3000,7 +3000,7 @@ # Define the identity of the package. PACKAGE='evolution-ews' - VERSION='3.12.5' + VERSION='3.12.6' cat >>confdefs.h <<_ACEOF @@ -3197,11 +3197,11 @@ # precisely one minor behind [ews_version], then allow building against *that* # version of EDS and Evo. read x NEWSVER y < NEWS -PREVVER=3.12.$(expr 5 - 1) +PREVVER=3.12.$(expr 6 - 1) if test "$PREVVER" = "$NEWSVER"; then EVOREQVER=$PREVVER else - EVOREQVER=3.12.5 + EVOREQVER=3.12.6 fi @@ -16708,7 +16708,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by evolution-ews $as_me 3.12.5, which was +This file was extended by evolution-ews $as_me 3.12.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16774,7 +16774,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -evolution-ews config.status 3.12.5 +evolution-ews config.status 3.12.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/configure.ac new/evolution-ews-3.12.6/configure.ac --- old/evolution-ews-3.12.5/configure.ac 2014-07-14 08:42:19.000000000 +0200 +++ new/evolution-ews-3.12.6/configure.ac 2014-08-11 10:09:26.000000000 +0200 @@ -1,7 +1,7 @@ dnl Evolution-EWS version m4_define([ews_major_version], [3]) m4_define([ews_minor_version], [12]) -m4_define([ews_micro_version], [5]) +m4_define([ews_micro_version], [6]) m4_define([ews_version], [ews_major_version.ews_minor_version.ews_micro_version]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/addressbook/e-book-backend-ews.c new/evolution-ews-3.12.6/src/addressbook/e-book-backend-ews.c --- old/evolution-ews-3.12.5/src/addressbook/e-book-backend-ews.c 2014-08-11 09:12:45.000000000 +0200 +++ new/evolution-ews-3.12.6/src/addressbook/e-book-backend-ews.c 2014-09-01 16:50:38.000000000 +0200 @@ -3967,6 +3967,7 @@ g_cond_clear (&priv->dlock->cond); g_free (priv->dlock); priv->dthread = NULL; + priv->dlock = NULL; } if (priv->cancellable) { @@ -4008,12 +4009,19 @@ priv->summary = NULL; } - g_rec_mutex_clear (&priv->rec_mutex); + G_OBJECT_CLASS (e_book_backend_ews_parent_class)->dispose (object); +} - g_free (priv); - priv = NULL; +static void +e_book_backend_ews_finalize (GObject *object) +{ + EBookBackendEws *bews; - G_OBJECT_CLASS (e_book_backend_ews_parent_class)->dispose (object); + bews = E_BOOK_BACKEND_EWS (object); + + g_rec_mutex_clear (&bews->priv->rec_mutex); + + G_OBJECT_CLASS (e_book_backend_ews_parent_class)->finalize (object); } static gboolean @@ -4089,6 +4097,8 @@ EBackendClass *backend_class; EBookBackendClass *parent_class; + g_type_class_add_private (klass, sizeof (EBookBackendEwsPrivate)); + backend_class = E_BACKEND_CLASS (klass); parent_class = E_BOOK_BACKEND_CLASS (klass); @@ -4108,6 +4118,7 @@ object_class->constructed = e_book_backend_ews_constructed; object_class->dispose = e_book_backend_ews_dispose; + object_class->finalize = e_book_backend_ews_finalize; } static void @@ -4120,19 +4131,13 @@ static void e_book_backend_ews_init (EBookBackendEws *backend) { - EBookBackendEws *bews; - EBookBackendEwsPrivate *priv; - - bews = E_BOOK_BACKEND_EWS (backend); - - priv = g_new0 (EBookBackendEwsPrivate, 1); - priv->ops = g_hash_table_new (NULL, NULL); + backend->priv = G_TYPE_INSTANCE_GET_PRIVATE (backend, E_TYPE_BOOK_BACKEND_EWS, EBookBackendEwsPrivate); + backend->priv->ops = g_hash_table_new (NULL, NULL); - bews->priv = priv; - g_rec_mutex_init (&priv->rec_mutex); - priv->cancellable = g_cancellable_new (); + g_rec_mutex_init (&backend->priv->rec_mutex); + backend->priv->cancellable = g_cancellable_new (); g_signal_connect ( - bews, "notify::online", + backend, "notify::online", G_CALLBACK (e_book_backend_ews_notify_online_cb), NULL); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/calendar/e-cal-backend-ews.c new/evolution-ews-3.12.6/src/calendar/e-cal-backend-ews.c --- old/evolution-ews-3.12.5/src/calendar/e-cal-backend-ews.c 2014-07-24 09:01:11.000000000 +0200 +++ new/evolution-ews-3.12.6/src/calendar/e-cal-backend-ews.c 2014-09-01 16:50:38.000000000 +0200 @@ -4197,9 +4197,6 @@ priv->refreshing_done = NULL; } - g_free (priv); - cbews->priv = NULL; - e_cal_backend_ews_unref_windows_zones (); G_OBJECT_CLASS (e_cal_backend_ews_parent_class)->finalize (object); @@ -4271,6 +4268,8 @@ EBackendClass *backend_class; ECalBackendClass *cal_backend_class; + g_type_class_add_private (class, sizeof (ECalBackendEwsPrivate)); + object_class = G_OBJECT_CLASS (class); backend_class = E_BACKEND_CLASS (class); cal_backend_class = E_CAL_BACKEND_CLASS (class); @@ -4316,18 +4315,14 @@ static void e_cal_backend_ews_init (ECalBackendEws *cbews) { - ECalBackendEwsPrivate *priv; - - priv = g_new0 (ECalBackendEwsPrivate, 1); + cbews->priv = G_TYPE_INSTANCE_GET_PRIVATE (cbews, E_TYPE_CAL_BACKEND_EWS, ECalBackendEwsPrivate); /* create the mutex for thread safety */ - g_rec_mutex_init (&priv->rec_mutex); - priv->refreshing_done = e_flag_new (); - priv->item_id_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - priv->default_zone = icaltimezone_get_utc_timezone (); - priv->cancellable = g_cancellable_new (); - - cbews->priv = priv; + g_rec_mutex_init (&cbews->priv->rec_mutex); + cbews->priv->refreshing_done = e_flag_new (); + cbews->priv->item_id_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); + cbews->priv->default_zone = icaltimezone_get_utc_timezone (); + cbews->priv->cancellable = g_cancellable_new (); g_signal_connect ( cbews, "notify::online", @@ -4335,4 +4330,3 @@ e_cal_backend_ews_populate_windows_zones (); } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/camel/camel-ews-folder.c new/evolution-ews-3.12.6/src/camel/camel-ews-folder.c --- old/evolution-ews-3.12.5/src/camel/camel-ews-folder.c 2014-07-17 12:41:56.000000000 +0200 +++ new/evolution-ews-3.12.6/src/camel/camel-ews-folder.c 2014-09-01 15:54:39.000000000 +0200 @@ -1422,9 +1422,20 @@ for (l = updated_items; l != NULL; l = g_slist_next (l)) { EEwsItem *item = (EEwsItem *) l->data; - const EwsId *id = e_ews_item_get_id (item); + const EwsId *id; CamelMessageInfo *mi; + if (!item) + continue; + + id = e_ews_item_get_id (item); + if (!id) { + g_warning ("%s: Missing ItemId for item type %d (subject:%s)", G_STRFUNC, e_ews_item_get_item_type (item), + e_ews_item_get_subject (item) ? e_ews_item_get_subject (item) : "???"); + g_object_unref (item); + continue; + } + /* Compare the item_type from summary as the updated items seems to * arrive as generic types while its not the case */ mi = camel_folder_summary_get (folder->summary, id->id); @@ -1533,6 +1544,14 @@ id = e_ews_item_get_id (item); item_type = e_ews_item_get_item_type (item); + + if (!id) { + g_warning ("%s: Missing ItemId for item type %d (subject:%s)", G_STRFUNC, item_type, + e_ews_item_get_subject (item) ? e_ews_item_get_subject (item) : "???"); + g_object_unref (item); + continue; + } + /* created_msg_ids are items other than generic item. We fetch them * separately since the property sets vary */ /* FIXME: Do we need to handle any other item types diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/camel/camel-ews-store-summary.c new/evolution-ews-3.12.6/src/camel/camel-ews-store-summary.c --- old/evolution-ews-3.12.5/src/camel/camel-ews-store-summary.c 2014-03-24 10:28:36.000000000 +0100 +++ new/evolution-ews-3.12.6/src/camel/camel-ews-store-summary.c 2014-09-01 16:50:38.000000000 +0200 @@ -46,8 +46,6 @@ if (priv->monitor_delete) g_object_unref (priv->monitor_delete); - g_free (priv); - /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (camel_ews_store_summary_parent_class)->finalize (object); } @@ -57,6 +55,8 @@ { GObjectClass *object_class; + g_type_class_add_private (class, sizeof (CamelEwsStoreSummaryPrivate)); + object_class = G_OBJECT_CLASS (class); object_class->finalize = ews_store_summary_finalize; } @@ -64,16 +64,13 @@ static void camel_ews_store_summary_init (CamelEwsStoreSummary *ews_summary) { - CamelEwsStoreSummaryPrivate *priv; - - priv = g_new0 (CamelEwsStoreSummaryPrivate, 1); - ews_summary->priv = priv; + ews_summary->priv = G_TYPE_INSTANCE_GET_PRIVATE (ews_summary, CAMEL_TYPE_EWS_STORE_SUMMARY, CamelEwsStoreSummaryPrivate); - priv->key_file = g_key_file_new (); - priv->dirty = FALSE; - priv->fname_id_hash = g_hash_table_new (g_str_hash, g_str_equal); - priv->id_fname_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - g_rec_mutex_init (&priv->s_lock); + ews_summary->priv->key_file = g_key_file_new (); + ews_summary->priv->dirty = FALSE; + ews_summary->priv->fname_id_hash = g_hash_table_new (g_str_hash, g_str_equal); + ews_summary->priv->id_fname_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); + g_rec_mutex_init (&ews_summary->priv->s_lock); } static gchar *build_full_name (CamelEwsStoreSummary *ews_summary, const gchar *fid) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/camel/camel-ews-utils.c new/evolution-ews-3.12.6/src/camel/camel-ews-utils.c --- old/evolution-ews-3.12.5/src/camel/camel-ews-utils.c 2014-05-07 12:49:13.000000000 +0200 +++ new/evolution-ews-3.12.6/src/camel/camel-ews-utils.c 2014-09-01 15:54:39.000000000 +0200 @@ -762,8 +762,14 @@ } id = e_ews_item_get_id (item); - mi = (CamelEwsMessageInfo *) - camel_folder_summary_get (folder->summary, id->id); + if (!id) { + g_warning ("%s: Missing ItemId for item type %d (subject:%s)", G_STRFUNC, e_ews_item_get_item_type (item), + e_ews_item_get_subject (item) ? e_ews_item_get_subject (item) : "???"); + g_object_unref (item); + continue; + } + + mi = (CamelEwsMessageInfo *) camel_folder_summary_get (folder->summary, id->id); if (mi) { guint32 server_flags; gboolean changed, was_changed; @@ -842,8 +848,14 @@ } id = e_ews_item_get_id (item); - mi = (CamelEwsMessageInfo *) - camel_folder_summary_get (folder->summary, id->id); + if (!id) { + g_warning ("%s: Missing ItemId for item type %d (subject:%s)", G_STRFUNC, e_ews_item_get_item_type (item), + e_ews_item_get_subject (item) ? e_ews_item_get_subject (item) : "???"); + g_object_unref (item); + continue; + } + + mi = (CamelEwsMessageInfo *) camel_folder_summary_get (folder->summary, id->id); if (mi) { camel_message_info_unref (mi); g_object_unref (item); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/server/e-ews-folder.c new/evolution-ews-3.12.6/src/server/e-ews-folder.c --- old/evolution-ews-3.12.5/src/server/e-ews-folder.c 2014-03-24 10:28:36.000000000 +0100 +++ new/evolution-ews-3.12.6/src/server/e-ews-folder.c 2014-09-01 16:50:38.000000000 +0200 @@ -48,8 +48,6 @@ gboolean foreign; }; -static GObjectClass *parent_class = NULL; - static void e_ews_folder_dispose (GObject *object) { @@ -57,8 +55,7 @@ g_return_if_fail (E_IS_EWS_FOLDER (folder)); - if (parent_class->dispose) - (* parent_class->dispose) (object); + G_OBJECT_CLASS (e_ews_folder_parent_class)->dispose (object); } static void @@ -92,11 +89,7 @@ priv->parent_fid = NULL; } - g_free (priv); - folder->priv = NULL; - - if (parent_class->finalize) - (* parent_class->finalize) (object); + G_OBJECT_CLASS (e_ews_folder_parent_class)->finalize (object); } static void @@ -104,7 +97,7 @@ { GObjectClass *object_class = G_OBJECT_CLASS (klass); - parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (EEwsFolderPrivate)); object_class->dispose = e_ews_folder_dispose; object_class->finalize = e_ews_folder_finalize; @@ -113,15 +106,10 @@ static void e_ews_folder_init (EEwsFolder *folder) { - EEwsFolderPrivate *priv; - - /* allocate internal structure */ - priv = g_new0 (EEwsFolderPrivate, 1); - folder->priv = priv; - - priv->error = NULL; - priv->folder_type = E_EWS_FOLDER_TYPE_UNKNOWN; - priv->foreign = FALSE; + folder->priv = G_TYPE_INSTANCE_GET_PRIVATE (folder, E_TYPE_EWS_FOLDER, EEwsFolderPrivate); + folder->priv->error = NULL; + folder->priv->folder_type = E_EWS_FOLDER_TYPE_UNKNOWN; + folder->priv->foreign = FALSE; } static gboolean diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/evolution-ews-3.12.5/src/server/e-ews-item.c new/evolution-ews-3.12.6/src/server/e-ews-item.c --- old/evolution-ews-3.12.5/src/server/e-ews-item.c 2014-07-10 21:11:31.000000000 +0200 +++ new/evolution-ews-3.12.6/src/server/e-ews-item.c 2014-09-01 16:50:38.000000000 +0200 @@ -148,7 +148,6 @@ struct _EEwsTaskFields *task_fields; }; -static GObjectClass *parent_class = NULL; static void ews_item_free_attendee (EwsAttendee *attendee); static void ews_free_contact_fields (struct _EEwsContactFields *con_fields); @@ -273,26 +272,7 @@ g_slist_free_full (priv->categories, g_free); priv->categories = NULL; - if (parent_class->dispose) - (* parent_class->dispose) (object); -} - -static void -e_ews_item_finalize (GObject *object) -{ - EEwsItem *item = (EEwsItem *) object; - EEwsItemPrivate *priv; - - g_return_if_fail (E_IS_EWS_ITEM (item)); - - priv = item->priv; - - /* clean up */ - g_free (priv); - item->priv = NULL; - - if (parent_class->finalize) - (* parent_class->finalize) (object); + G_OBJECT_CLASS (e_ews_item_parent_class)->dispose (object); } static void @@ -300,25 +280,20 @@ { GObjectClass *object_class = G_OBJECT_CLASS (klass); - parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (EEwsItemPrivate)); object_class->dispose = e_ews_item_dispose; - object_class->finalize = e_ews_item_finalize; } static void e_ews_item_init (EEwsItem *item) { - EEwsItemPrivate *priv; - - /* allocate internal structure */ - priv = g_new0 (EEwsItemPrivate, 1); - item->priv = priv; + item->priv = G_TYPE_INSTANCE_GET_PRIVATE (item, E_TYPE_EWS_ITEM, EEwsItemPrivate); - priv->item_type = E_EWS_ITEM_TYPE_UNKNOWN; + item->priv->item_type = E_EWS_ITEM_TYPE_UNKNOWN; - priv->mapi_extended_tags = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free); - priv->mapi_extended_sets = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_hash_table_destroy); + item->priv->mapi_extended_tags = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free); + item->priv->mapi_extended_sets = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_hash_table_destroy); } static void -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org