From 5ea85e344a3c294124d38b6daac598e8efe06ec8 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 15 Nov 2007 19:18:25 +0000 Subject: [PATCH] - Add patch for RH bug #384741 (authentication crash). --- evolution-data-server-2.21.2-base64.patch | 147 ++++++++++++++++++++++ evolution-data-server.spec | 9 +- 2 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 evolution-data-server-2.21.2-base64.patch diff --git a/evolution-data-server-2.21.2-base64.patch b/evolution-data-server-2.21.2-base64.patch new file mode 100644 index 0000000..9d793d5 --- /dev/null +++ b/evolution-data-server-2.21.2-base64.patch @@ -0,0 +1,147 @@ +diff -up evolution-data-server-2.21.2/libedataserverui/e-passwords.c.base64 evolution-data-server-2.21.2/libedataserverui/e-passwords.c +--- evolution-data-server-2.21.2/libedataserverui/e-passwords.c.base64 2007-11-08 19:59:38.000000000 -0500 ++++ evolution-data-server-2.21.2/libedataserverui/e-passwords.c 2007-11-15 13:39:13.000000000 -0500 +@@ -214,7 +214,7 @@ ep_password_decode (const gchar *encoded + * to the decoded data to make it a nul-terminated string. */ + + gchar *password; +- gsize length; ++ gsize length = 0; + + password = (gchar *) g_base64_decode (encoded_password, &length); + password = g_realloc (password, length + 1); +diff -up evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c.base64 evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c +--- evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c.base64 2007-10-23 05:57:29.000000000 -0400 ++++ evolution-data-server-2.21.2/servers/exchange/lib/e2k-autoconfig.c 2007-11-15 13:39:13.000000000 -0500 +@@ -306,8 +306,6 @@ get_ctx_auth_handler (SoupMessage *msg, + E2kAutoconfig *ac = user_data; + const GSList *headers; + const char *challenge_hdr; +- guchar *challenge; +- gsize length; + + ac->saw_ntlm = ac->saw_basic = FALSE; + headers = soup_message_get_header_list (msg->response_headers, +@@ -322,6 +320,9 @@ get_ctx_auth_handler (SoupMessage *msg, + + if (!strncmp (challenge_hdr, "NTLM ", 5) && + (!ac->w2k_domain || !ac->nt_domain)) { ++ guchar *challenge; ++ gsize length = 0; ++ + challenge = g_base64_decode (challenge_hdr + 5, &length); + if (!ac->nt_domain) + ac->nt_domain_defaulted = TRUE; +diff -up evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c.base64 evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c +--- evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c.base64 2007-10-23 05:57:29.000000000 -0400 ++++ evolution-data-server-2.21.2/servers/exchange/lib/e2k-result.c 2007-11-15 13:39:13.000000000 -0500 +@@ -45,7 +45,7 @@ prop_get_binary_array (E2kResult *result + byte_array = g_byte_array_new (); + if (node->xmlChildrenNode && node->xmlChildrenNode->content) { + guchar *data; +- gsize length; ++ gsize length = 0; + + data = g_base64_decode ( + node->xmlChildrenNode->content, &length); +@@ -84,7 +84,7 @@ prop_get_binary (E2kResult *result, cons + byte_array = g_byte_array_new (); + if (node->xmlChildrenNode && node->xmlChildrenNode->content) { + guchar *data; +- gsize length; ++ gsize length = 0; + + data = g_base64_decode ( + node->xmlChildrenNode->content, &length); +diff -up evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c.base64 evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c +--- evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c.base64 2007-10-23 05:57:35.000000000 -0400 ++++ evolution-data-server-2.21.2/addressbook/tests/ebook/test-photo.c 2007-11-15 13:39:13.000000000 -0500 +@@ -28,15 +28,19 @@ main (int argc, char **argv) + { + EContact *contact; + EContactPhoto *photo, *new_photo; ++ guchar *data; ++ gsize length = 0; + + g_type_init (); + + contact = e_contact_new (); ++ data = g_base64_decode (photo_data, &length); + + photo = g_new (EContactPhoto, 1); + photo->type = E_CONTACT_PHOTO_TYPE_INLINED; + photo->data.inlined.mime_type = NULL; +- photo->data.inlined.data = g_base64_decode (photo_data, &photo->data.inlined.length); ++ photo->data.inlined.data = data; ++ photo->data.inlined.length = length; + + /* set the photo */ + e_contact_set (contact, E_CONTACT_PHOTO, photo); +diff -up evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c.base64 evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c +--- evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c.base64 2007-10-23 05:57:37.000000000 -0400 ++++ evolution-data-server-2.21.2/addressbook/libebook/e-vcard.c 2007-11-15 13:39:13.000000000 -0500 +@@ -1780,7 +1780,7 @@ e_vcard_attribute_get_values_decoded (EV + case EVC_ENCODING_BASE64: + for (l = attr->values; l; l = l->next) { + guchar *decoded; +- gsize len; ++ gsize len = 0; + + decoded = g_base64_decode (l->data, &len); + attr->decoded_values = g_list_prepend (attr->decoded_values, g_string_new_len (decoded, len)); +diff -up evolution-data-server-2.21.2/camel/camel-sasl.c.base64 evolution-data-server-2.21.2/camel/camel-sasl.c +--- evolution-data-server-2.21.2/camel/camel-sasl.c.base64 2007-10-23 05:57:18.000000000 -0400 ++++ evolution-data-server-2.21.2/camel/camel-sasl.c 2007-11-15 13:39:30.000000000 -0500 +@@ -134,9 +134,9 @@ camel_sasl_challenge_base64 (CamelSasl * + + g_return_val_if_fail (CAMEL_IS_SASL (sasl), NULL); + +- if (token) { ++ if (token && *token) { + guchar *data; +- gsize length; ++ gsize length = 0; + + data = g_base64_decode (token, &length); + token_binary = g_byte_array_new (); +diff -up evolution-data-server-2.21.2/camel/camel-mime-utils.c.base64 evolution-data-server-2.21.2/camel/camel-mime-utils.c +--- evolution-data-server-2.21.2/camel/camel-mime-utils.c.base64 2007-11-09 13:13:12.000000000 -0500 ++++ evolution-data-server-2.21.2/camel/camel-mime-utils.c 2007-11-15 13:39:13.000000000 -0500 +@@ -192,7 +192,7 @@ size_t + camel_base64_decode_simple (char *data, size_t len) + { + guchar *out_data; +- gsize out_len; ++ gsize out_len = 0; + + g_return_val_if_fail (data != NULL, 0); + g_return_val_if_fail (strlen (data) > 1, 0); +diff -up evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c.base64 evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c +--- evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c.base64 2007-10-23 05:56:59.000000000 -0400 ++++ evolution-data-server-2.21.2/camel/providers/groupwise/camel-groupwise-folder.c 2007-11-15 13:39:13.000000000 -0500 +@@ -1684,7 +1684,7 @@ groupwise_folder_item_to_msg( CamelFolde + EGwItemAttachment *attach = (EGwItemAttachment *)al->data; + if (!g_ascii_strcasecmp (attach->name, "Mime.822")) { + if (attach->size > MAX_ATTACHMENT_SIZE) { +- int len_iter = 0, t_len , offset = 0, t_offset = 0; ++ int t_len , offset = 0, t_offset = 0; + char *t_attach = NULL; + GString *gstr = g_string_new (NULL); + +@@ -1694,6 +1694,7 @@ groupwise_folder_item_to_msg( CamelFolde + attach->id, t_offset, MAX_ATTACHMENT_SIZE, + (const char **)&t_attach, &t_len, &offset); + if (status == E_GW_CONNECTION_STATUS_OK) { ++ gsize len_iter = 0; + char *temp = NULL; + + temp = g_base64_decode(t_attach, &len_iter); +@@ -1831,7 +1832,7 @@ groupwise_folder_item_to_msg( CamelFolde + attach->id, t_offset, MAX_ATTACHMENT_SIZE, + (const char **)&t_attach, &t_len, &offset); + if (status == E_GW_CONNECTION_STATUS_OK) { +- int len_iter = 0; ++ gsize len_iter = 0; + char *temp = NULL; + + temp = g_base64_decode(t_attach, &len_iter); diff --git a/evolution-data-server.spec b/evolution-data-server.spec index 22e1d96..eeed0a4 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -26,7 +26,7 @@ Name: evolution-data-server Version: 2.21.2 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPL Group: System Environment/Libraries Summary: Backend data server for Evolution @@ -61,6 +61,9 @@ Patch18: evolution-data-server-1.10.1-camel-folder-summary-crash.patch # RH bug #243296 Patch19: evolution-data-server-1.11.5-fix-64bit-acinclude.patch +# RH bug #384741 / GNOME bug #474000 +Patch20: evolution-data-server-2.21.2-base64.patch + ### Build Dependencies ### BuildRequires: GConf2-devel @@ -141,6 +144,7 @@ This package contains developer documentation for %{name}. #%patch16 -p1 -b .e-passwords %patch18 -p1 -b .camel-folder-summary-crash %patch19 -p1 -b .fix-64bit-acinclude +%patch20 -p1 -b .base64 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -383,6 +387,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gtk-doc/html/libedataserverui %changelog +* Thu Nov 15 2007 Matthew Barnes - 2.21.2-2.fc9 +- Add patch for RH bug #384741 (authentication crash). + * Mon Nov 12 2007 Matthew Barnes - 2.21.2-1.fc9 - Update to 2.21.2