* build-packet.c (build_sig_subpkt): Comments.
[gnupg.git] / g10 / build-packet.c
index 269cca3..3fec9a8 100644 (file)
@@ -1,5 +1,6 @@
 /* build-packet.c - assemble packets and write them
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002,
+ *               2003 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -539,6 +540,12 @@ do_plaintext( IOBUF out, int ctb, PKT_plaintext *pt )
     byte buf[1000]; /* this buffer has the plaintext! */
     int nbytes;
 
+    /* Truncate namelen to the maximum 255 characters.  This does mean
+       that a function that calls build_packet with an illegal literal
+       packet will get it back legalized. */
+    if(pt->namelen>255)
+      pt->namelen=255;
+
     write_header(out, ctb, calc_plaintext( pt ) );
     iobuf_put(out, pt->mode );
     iobuf_put(out, pt->namelen );
@@ -787,6 +794,10 @@ build_sig_subpkt (PKT_signature *sig, sigsubpkttype_t type,
       case SIGSUBPKT_PRIV_VERIFY_CACHE: /*(obsolete)*/
        BUG();
        break;
+       /* The issuer being unhashed is a historical oddity.  It
+          should work equally as well hashed.  Of course, if even an
+          unhashed issuer is tampered with, it makes it awfully hard
+          to verify the sig... */
       case SIGSUBPKT_ISSUER:
         hashed = 0;
         break;