aboutsummaryrefslogtreecommitdiffstats
path: root/common/userids.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2011-04-25 21:56:47 +0000
committerWerner Koch <[email protected]>2011-04-25 21:59:25 +0000
commit5da12674eaae11969b22e6f80e4957217ad406d6 (patch)
tree1ae8b482a2c2cdef4cb24055d6d15c99224b5b1d /common/userids.c
parentAdd OPTION:cache-ttl-opt-preset to gpg-agent. (diff)
downloadgnupg-5da12674eaae11969b22e6f80e4957217ad406d6.tar.gz
gnupg-5da12674eaae11969b22e6f80e4957217ad406d6.zip
Fix regression in gpg's mail address parsing.
Since 2009-12-08 gpg was not able to find email addresses indicated by a leading '<'. This happened when I merged the user id classification code of gpgsm and gpg.
Diffstat (limited to 'common/userids.c')
-rw-r--r--common/userids.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/common/userids.c b/common/userids.c
index 9cc29f3b4..8c89c3284 100644
--- a/common/userids.c
+++ b/common/userids.c
@@ -61,7 +61,7 @@
*/
gpg_error_t
-classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc)
+classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc, int openpgp_hack)
{
const char *s;
int hexprefix = 0;
@@ -95,7 +95,12 @@ classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc)
case '<': /* An email address. */
mode = KEYDB_SEARCH_MODE_MAIL;
- s++;
+ /* FIXME: The keyring code in g10 assumes that the mail name is
+ prefixed with an '<'. However the keybox code used for sm/
+ assumes it has been removed. For now we use this simple hack
+ to overcome the problem. */
+ if (!openpgp_hack)
+ s++;
desc->u.name = s;
break;