- Add patch for GNOME bug #531439 (GPG passphrases destroy passwords).

This commit is contained in:
Matthew Barnes 2008-05-19 04:01:27 +00:00
parent 933b965cda
commit 8ff2abe35e
2 changed files with 80 additions and 1 deletions

View File

@ -0,0 +1,72 @@
diff -up evolution-data-server-2.23.2/libedataserverui/e-passwords.c.gpg-passphrases evolution-data-server-2.23.2/libedataserverui/e-passwords.c
--- evolution-data-server-2.23.2/libedataserverui/e-passwords.c.gpg-passphrases 2008-05-12 01:33:57.000000000 -0400
+++ evolution-data-server-2.23.2/libedataserverui/e-passwords.c 2008-05-18 23:40:19.000000000 -0400
@@ -193,19 +193,29 @@ ep_keyring_error_domain (void)
}
static EUri *
-ep_keyring_uri_new (const gchar *string)
+ep_keyring_uri_new (const gchar *string,
+ GError **error)
{
EUri *uri;
uri = e_uri_new (string);
- if (uri == NULL)
- return NULL;
+ g_return_val_if_fail (uri != NULL, NULL);
/* LDAP URIs do not have usernames, so use the URI as the username. */
if (uri->user == NULL && uri->protocol != NULL &&
(strcmp (uri->protocol, "ldap") == 0|| strcmp (uri->protocol, "google") == 0))
uri->user = g_strdelimit (g_strdup (string), "/=", '_');
+ /* Make sure the URI has the required components. */
+ if (uri->user == NULL && uri->host == NULL) {
+ g_set_error (
+ error, EP_KEYRING_ERROR,
+ GNOME_KEYRING_RESULT_BAD_ARGUMENTS,
+ _("Keyring key is unusable: no user or host name"));
+ e_uri_free (uri);
+ uri = NULL;
+ }
+
return uri;
}
@@ -618,8 +628,9 @@ ep_remember_password_keyring (EPassMsg *
return;
}
- uri = ep_keyring_uri_new (msg->key);
- g_return_if_fail (uri != NULL);
+ uri = ep_keyring_uri_new (msg->key, &msg->error);
+ if (uri == NULL)
+ return;
/* Only remove the password from the session hash
* if the keyring insertion was successful. */
@@ -681,8 +692,9 @@ ep_forget_password_keyring (EPassMsg *ms
EUri *uri;
GError *error = NULL;
- uri = ep_keyring_uri_new (msg->key);
- g_return_if_fail (uri != NULL);
+ uri = ep_keyring_uri_new (msg->key, &msg->error);
+ if (uri == NULL)
+ return;
/* Find all Evolution passwords matching the URI and delete them. */
passwords = ep_keyring_lookup_passwords (uri->user, uri->host, &error);
@@ -754,8 +766,9 @@ ep_get_password_keyring (EPassMsg *msg)
EUri *uri;
GError *error = NULL;
- uri = ep_keyring_uri_new (msg->key);
- g_return_if_fail (uri != NULL);
+ uri = ep_keyring_uri_new (msg->key, &msg->error);
+ if (uri == NULL)
+ return;
/* Find the first Evolution password that matches the URI. */
passwords = ep_keyring_lookup_passwords (uri->user, uri->host, &error);

View File

@ -28,7 +28,7 @@
Name: evolution-data-server
Version: 2.23.2
Release: 2%{?dist}
Release: 3%{?dist}
License: LGPL
Group: System Environment/Libraries
Summary: Backend data server for Evolution
@ -53,6 +53,9 @@ Patch13: evolution-data-server-1.11.5-fix-64bit-acinclude.patch
# Fix some typos and oversights related to libebackend
Patch14: evolution-data-server-2.23.2-libebackend-breakage.patch
# GNOME bug #531439
Patch15: evolution-data-server-2.23.2-gpg-passphrases.patch
### Build Dependencies ###
BuildRequires: GConf2-devel
@ -130,6 +133,7 @@ This package contains developer documentation for %{name}.
%patch12 -p1 -b .camel-folder-summary-crash
%patch13 -p1 -b .fix-64bit-acinclude
%patch14 -p1 -b .libebackend-breakage
%patch15 -p1 -b .gpg-passphrases
mkdir -p krb5-fakeprefix/include
mkdir -p krb5-fakeprefix/lib
@ -376,6 +380,9 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/gtk-doc/html/libedataserverui
%changelog
* Sun May 18 2008 Matthew Barnes <mbarnes@redhat.com> - 2.23.2-3.fc10
- Add patch for GNOME bug #531439 (GPG passphrases destroy passwords).
* Tue May 13 2008 Matthew Barnes <mbarnes@redhat.com> - 2.23.2-2.fc10
- Fix some third-party package breakage caused by libebackend.