core: Improve mailbox only uid handling
* src/key.c (_gpgme_key_append_name): Set email and remove name for uid only keys. -- If we have a name and no email but the name can be parsed as an address we now treat the address as email and remove the name. This fixes downstream users that rely on email to show email addresses and don't expilicity handle this case. E.g. A userid foo@example.com was: uid->name = "foo@example.com" uid->email = "" uid->address = "foo@example.com" It is now: uid->name = "" uid->email = "foo@example.com" uid->address = "foo@example.com"
This commit is contained in:
parent
ba594d85e3
commit
a28d31fdb6
@ -242,6 +242,14 @@ _gpgme_key_append_name (gpgme_key_t key, const char *src, int convert)
|
|||||||
free (uid->address);
|
free (uid->address);
|
||||||
uid->address = uid->email;
|
uid->address = uid->email;
|
||||||
}
|
}
|
||||||
|
if ((!uid->email || !*uid->email) && uid->address && uid->name
|
||||||
|
&& !strcmp (uid->name, uid->address))
|
||||||
|
{
|
||||||
|
/* Name and address are the same. This is a mailbox only key.
|
||||||
|
Use address as email and remove name. */
|
||||||
|
*uid->name = '\0';
|
||||||
|
uid->email = uid->address;
|
||||||
|
}
|
||||||
|
|
||||||
if (!key->uids)
|
if (!key->uids)
|
||||||
key->uids = uid;
|
key->uids = uid;
|
||||||
|
Loading…
Reference in New Issue
Block a user