- Add patch for GNOME bug #531439 (GPG passphrases destroy passwords).
parent
933b965cda
commit
8ff2abe35e
@ -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);
|
Loading…
Reference in new issue