From c54ef0383c3e8b53a9ab4b7f122a5a9fd1553c4f Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 8 Mar 2007 07:39:57 +0000 Subject: Fix from 1.4: * keyedit.c (keyedit_menu): If we modify the keyblock (via fix_keyblock() or collapse_uids()) make sure we reprocess the keyblock so the flags are correct. Noted by Robin H. Johnson. * getkey.c (fixup_uidnode): Properly clear flags that don't apply to us (revoked, expired) so that we can reprocess a uid. --- g10/getkey.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'g10/getkey.c') diff --git a/g10/getkey.c b/g10/getkey.c index d526398c6..042046de1 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -1,6 +1,6 @@ /* getkey.c - Get a key from the database * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - * 2006 Free Software Foundation, Inc. + * 2006, 2007 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -1490,18 +1490,23 @@ fixup_uidnode ( KBNODE uidnode, KBNODE signode, u32 keycreated ) sig->flags.chosen_selfsig = 1; /* we chose this one */ uid->created = 0; /* not created == invalid */ - if ( IS_UID_REV ( sig ) ) { + if ( IS_UID_REV ( sig ) ) + { uid->is_revoked = 1; return; /* has been revoked */ - } + } + else + uid->is_revoked = 0; uid->expiredate = sig->expiredate; - if(sig->flags.expired) + if (sig->flags.expired) { uid->is_expired = 1; return; /* has expired */ } + else + uid->is_expired = 0; uid->created = sig->timestamp; /* this one is okay */ uid->selfsigversion = sig->version; -- cgit v1.2.3