* sign.c (update_keysig_packet): Policies and notations should be stripped
authorDavid Shaw <dshaw@jabberwocky.com>
Wed, 19 May 2004 03:11:22 +0000 (03:11 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Wed, 19 May 2004 03:11:22 +0000 (03:11 +0000)
out when remaking a self-signature.  Noted by Atom Smasher.

* keyserver.c (parse_keyserver_uri): Fix compiler warnings.

g10/ChangeLog
g10/keyserver.c
g10/sign.c

index ee80b96..8aae030 100644 (file)
@@ -1,3 +1,11 @@
+2004-05-18  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (update_keysig_packet): Policies and notations should be
+       stripped out when remaking a self-signature.  Noted by Atom
+       Smasher.
+
+       * keyserver.c (parse_keyserver_uri): Fix compiler warnings.
+
 2004-05-11  David Shaw  <dshaw@jabberwocky.com>
 
        * options.h, keyserver-internal.h, keyserver.c
index 1d614da..53f75ff 100644 (file)
@@ -163,7 +163,7 @@ parse_keyserver_uri(const char *uri,int require_scheme,
 
   /* Get the scheme */
 
-  for(idx=uri,count=0;*idx && *idx!=':';*idx++)
+  for(idx=uri,count=0;*idx && *idx!=':';idx++)
     count++;
 
   if(count==0)
@@ -218,7 +218,7 @@ parse_keyserver_uri(const char *uri,int require_scheme,
       if(!assume_hkp)
        uri+=2;
 
-      for(idx=uri,count=0;*idx && *idx!=':' && *idx!='/';*idx++)
+      for(idx=uri,count=0;*idx && *idx!=':' && *idx!='/';idx++)
        count++;
 
       if(count==0)
@@ -238,7 +238,7 @@ parse_keyserver_uri(const char *uri,int require_scheme,
             imply there is no limit.  Of course, the real world has
             limits. */
 
-         for(idx=uri+1,count=0;*idx && *idx!='/';*idx++)
+         for(idx=uri+1,count=0;*idx && *idx!='/';idx++)
            {
              count++;
 
index 44c53f8..7ca0eed 100644 (file)
@@ -1381,6 +1381,18 @@ update_keysig_packet( PKT_signature **ret_sig,
     /* create a new signature packet */
     sig = copy_signature (NULL, orig_sig);
 
+    /* We've copied the signature, subpackets and all, but we don't
+       want any old policies or notations coming over: the signature
+       is being remade, so these need to be restated as well.  Note
+       that other subpackets like backsigs come over as well, but we
+       want to keep those.  We don't delete policies or notations from
+       the unhashed area - since we don't put them there, this is a
+       case of not messing about with things that we are not
+       responsible for. */
+
+     delete_sig_subpkt(sig->hashed,SIGSUBPKT_POLICY);
+     delete_sig_subpkt(sig->hashed,SIGSUBPKT_NOTATION);
     /* We need to create a new timestamp so that new sig expiration
        calculations are done correctly... */
     sig->timestamp=make_timestamp();