[svn] GnuPG - r3929 - trunk/g10

svn author dshaw cvs at cvs.gnupg.org
Fri Nov 11 00:16:37 CET 2005


Author: dshaw
Date: 2005-11-11 00:16:34 +0100 (Fri, 11 Nov 2005)
New Revision: 3929

Modified:
   trunk/g10/ChangeLog
   trunk/g10/keyedit.c
   trunk/g10/packet.h
   trunk/g10/trustdb.c
Log:
* packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
(clean_uids_from_key): Fix display bug where sigs cleaned for other
reasons caused a uid to appear as if it had been compacted.


Modified: trunk/g10/ChangeLog
===================================================================
--- trunk/g10/ChangeLog	2005-11-10 22:50:46 UTC (rev 3928)
+++ trunk/g10/ChangeLog	2005-11-10 23:16:34 UTC (rev 3929)
@@ -1,5 +1,9 @@
 2005-11-10  David Shaw  <dshaw at jabberwocky.com>
 
+	* packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
+	(clean_uids_from_key): Fix display bug where sigs cleaned for
+	other reasons caused a uid to appear as if it had been compacted.
+
 	* packet.h: Move some flags to a bitfield.  Change all callers.
 
 	* options.h, import.c (parse_import_options,

Modified: trunk/g10/keyedit.c
===================================================================
--- trunk/g10/keyedit.c	2005-11-10 22:50:46 UTC (rev 3928)
+++ trunk/g10/keyedit.c	2005-11-10 23:16:34 UTC (rev 3929)
@@ -3225,30 +3225,26 @@
 
   if(modified)
     {
-      KBNODE node,uidnode=NULL;
+      KBNODE node;
 
       for(node=keyblock->next;node;node=node->next)
 	{
-	  if(node->pkt->pkttype==PKT_USER_ID)
-	    uidnode=node;
-	  else if(uidnode && node->pkt->pkttype==PKT_SIGNATURE
-		  && is_deleted_kbnode(node))
+	  if(node->pkt->pkttype==PKT_USER_ID
+	     && node->pkt->pkt.user_id->flags.compacted)
 	    {
 	      const char *reason;
-	      char *user=utf8_to_native(uidnode->pkt->pkt.user_id->name,
-					uidnode->pkt->pkt.user_id->len,0);
+	      char *user=utf8_to_native(node->pkt->pkt.user_id->name,
+					node->pkt->pkt.user_id->len,0);
 
-	      if(uidnode->pkt->pkt.user_id->is_revoked)
+	      if(node->pkt->pkt.user_id->is_revoked)
 		reason=_("revoked");
-	      else if(uidnode->pkt->pkt.user_id->is_expired)
+	      else if(node->pkt->pkt.user_id->is_expired)
 		reason=_("expired");
 	      else
 		reason=_("invalid");
 
 	      tty_printf("User ID \"%s\" compacted: %s\n",user,reason);
 
-	      uidnode=NULL;
-
 	      xfree(user);
 	    }
 	}

Modified: trunk/g10/packet.h
===================================================================
--- trunk/g10/packet.h	2005-11-10 22:50:46 UTC (rev 3928)
+++ trunk/g10/packet.h	2005-11-10 23:16:34 UTC (rev 3929)
@@ -208,6 +208,7 @@
     /* TODO: Move more flags here */
     unsigned mdc:1;
     unsigned ks_modify:1;
+    unsigned compacted:1;
   } flags;
   char name[1];
 } PKT_user_id;

Modified: trunk/g10/trustdb.c
===================================================================
--- trunk/g10/trustdb.c	2005-11-10 22:50:46 UTC (rev 3928)
+++ trunk/g10/trustdb.c	2005-11-10 23:16:34 UTC (rev 3929)
@@ -1667,8 +1667,9 @@
 clean_uids_from_key(KBNODE keyblock,int noisy)
 {
   int delete_until_next=0,deleting=0,deleted=0;
-  KBNODE node,signode=NULL;
+  KBNODE node;
   u32 keyid[2],sigdate=0;
+  PKT_user_id *uid=NULL;
 
   assert(keyblock->pkt->pkttype==PKT_PUBLIC_KEY);
 
@@ -1682,10 +1683,8 @@
     {
       if(node->pkt->pkttype==PKT_USER_ID)
 	{
-	  PKT_user_id *uid=node->pkt->pkt.user_id;
-
+	  uid=node->pkt->pkt.user_id;
 	  sigdate=0;
-	  signode=NULL;
 
 	  /* Skip valid user IDs, and non-self-signed user IDs if
 	     --allow-non-selfsigned-uid is set. */
@@ -1718,7 +1717,7 @@
 		}
 	    }
 	}
-      else if(node->pkt->pkttype==PKT_SIGNATURE)
+      else if(node->pkt->pkttype==PKT_SIGNATURE && uid)
 	{
 	  PKT_signature *sig=node->pkt->pkt.signature;
 
@@ -1727,13 +1726,11 @@
 	  if(IS_UID_SIG(sig) && sig->timestamp>sigdate
 	     && keyid[0]==sig->keyid[0] && keyid[1]==sig->keyid[1]
 	     && check_key_signature(keyblock,node,NULL)==0)
-	    {
-	      sigdate=sig->timestamp;
-	      signode=node;
-	    }
+	    sigdate=sig->timestamp;
 
 	  if(delete_until_next && !sig->flags.chosen_selfsig)
 	    {
+	      uid->flags.compacted=1;
 	      delete_kbnode(node);
 	      if(deleting)
 		{




More information about the Gnupg-commits mailing list