* parse-packet.c (read_protected_v3_mpi): Make sure to stop
authorWerner Koch <wk@gnupg.org>
Mon, 15 Jan 2007 19:31:24 +0000 (19:31 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 15 Jan 2007 19:31:24 +0000 (19:31 +0000)
reading even for corrupted packets.
* keygen.c (generate_user_id): Need to allocate one byte more.
Reported by Felix von Leitner.

g10/ChangeLog
g10/keygen.c
g10/parse-packet.c

index ec0778c..69e4361 100644 (file)
@@ -1,3 +1,10 @@
+2007-01-15  Werner Koch  <wk@g10code.com>
+
+       * parse-packet.c (read_protected_v3_mpi): Make sure to stop
+       reading even for corrupted packets.
+       * keygen.c (generate_user_id): Need to allocate one byte more.
+       Reported by Felix von Leitner.
+
 2006-12-21  Werner Koch  <wk@g10code.com>
 
        * gpg.c (main): New command --server.
index 1335eaf..2db4ab2 100644 (file)
@@ -2130,7 +2130,7 @@ generate_user_id()
     if( !p )
        return NULL;
     n = strlen(p);
-    uid = xmalloc_clear( sizeof *uid + n - 1 );
+    uid = xmalloc_clear( sizeof *uid + n );
     uid->len = n;
     strcpy(uid->name, p);
     uid->ref = 1;
index d60d5d7..ae0cc28 100644 (file)
@@ -1589,11 +1589,11 @@ read_protected_v3_mpi (IOBUF inp, unsigned long *length)
   buf = p = xmalloc (2 + nbytes);
   *p++ = nbits >> 8;
   *p++ = nbits;
-  for (; nbytes && length; nbytes--, --*length)
+  for (; nbytes && *length; nbytes--, --*length)
     *p++ = iobuf_get (inp);
   if (nbytes)
     {
-      log_error ("packet shorter tham mpi\n");
+      log_error ("packet shorter than mpi\n");
       xfree (buf);
       return NULL;
     }