]> the.earth.li Git - onak.git/blobdiff - parsekey.c
cscvs to tla changeset 131
[onak.git] / parsekey.c
index a498f4c0e606d15a6f1a636739a68a9de35bf2b6..4482d8bc008d07a20330366a050f34a7033dee10 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright 2002 Project Purple
  *
- * $Id: parsekey.c,v 1.17 2003/10/11 21:52:18 noodles Exp $
+ * $Id: parsekey.c,v 1.19 2004/05/27 18:42:22 noodles Exp $
  */
 
 #include <assert.h>
@@ -225,13 +225,13 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
                                        curpacket->packet->length = curchar;
                                        curpacket->packet->length <<= 8;
                                        rc = getchar_func(ctx, 1, &curchar);
-                                       curpacket->packet->length = curchar;
+                                       curpacket->packet->length += curchar;
                                        curpacket->packet->length <<= 8;
                                        rc = getchar_func(ctx, 1, &curchar);
-                                       curpacket->packet->length = curchar;
+                                       curpacket->packet->length += curchar;
                                        curpacket->packet->length <<= 8;
                                        rc = getchar_func(ctx, 1, &curchar);
-                                       curpacket->packet->length = curchar;
+                                       curpacket->packet->length += curchar;
                                }
                        } else {
                                curpacket->packet->tag = (curchar & 0x3C) >> 2;
@@ -292,6 +292,7 @@ int read_openpgp_stream(int (*getchar_func)(void *ctx, size_t count,
                } else {
                        logthing(LOGTHING_ERROR, "Unexpected character: 0x%X",
                                curchar);
+                       rc = 1;
                }
        }