[svn] GnuPG - r4448 - trunk/g10

svn author wk cvs at cvs.gnupg.org
Thu Mar 8 08:39:59 CET 2007


Author: wk
Date: 2007-03-08 08:39:57 +0100 (Thu, 08 Mar 2007)
New Revision: 4448

Modified:
   trunk/g10/ChangeLog
   trunk/g10/getkey.c
   trunk/g10/keyedit.c
Log:
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.


Modified: trunk/g10/ChangeLog
===================================================================
--- trunk/g10/ChangeLog	2007-03-07 20:55:14 UTC (rev 4447)
+++ trunk/g10/ChangeLog	2007-03-08 07:39:57 UTC (rev 4448)
@@ -1,3 +1,12 @@
+2007-03-08  David Shaw  <dshaw at jabberwocky.com>  (wk)
+
+	* 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.
+
 2007-03-05  Werner Koch  <wk at g10code.com>
 
 	Converted this file to UTF-8.

Modified: trunk/g10/getkey.c
===================================================================
--- trunk/g10/getkey.c	2007-03-07 20:55:14 UTC (rev 4447)
+++ trunk/g10/getkey.c	2007-03-08 07:39:57 UTC (rev 4448)
@@ -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 @@
 
     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;

Modified: trunk/g10/keyedit.c
===================================================================
--- trunk/g10/keyedit.c	2007-03-07 20:55:14 UTC (rev 4447)
+++ trunk/g10/keyedit.c	2007-03-08 07:39:57 UTC (rev 4448)
@@ -1,6 +1,6 @@
 /* keyedit.c - keyedit stuff
  * 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.
  *
@@ -1554,6 +1554,10 @@
     if( collapse_uids( &keyblock ) )
 	modified++;
     reorder_keyblock(keyblock);
+    /* We modified the keyblock, so let's make sure the flags are
+       right. */
+    if (modified)
+      merge_keys_and_selfsig (keyblock);
 
     if(seckey_check)
       {/* see whether we have a matching secret key */




More information about the Gnupg-commits mailing list