1 |
|
2 |
http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=f0b33b6fb8e0586e9584a7a409dcc31263776a67 |
3 |
|
4 |
--- g10/import.c 2011-07-22 14:00:44.000000000 +0200 |
5 |
+++ g10/import.c.oden 2013-01-02 13:00:06.531734399 +0100 |
6 |
@@ -347,6 +347,27 @@ import_print_stats (void *hd) |
7 |
} |
8 |
|
9 |
|
10 |
+/* Return true if PKTTYPE is valid in a keyblock. */ |
11 |
+static int |
12 |
+valid_keyblock_packet (int pkttype) |
13 |
+{ |
14 |
+ switch (pkttype) |
15 |
+ { |
16 |
+ case PKT_PUBLIC_KEY: |
17 |
+ case PKT_PUBLIC_SUBKEY: |
18 |
+ case PKT_SECRET_KEY: |
19 |
+ case PKT_SECRET_SUBKEY: |
20 |
+ case PKT_SIGNATURE: |
21 |
+ case PKT_USER_ID: |
22 |
+ case PKT_ATTRIBUTE: |
23 |
+ case PKT_RING_TRUST: |
24 |
+ return 1; |
25 |
+ default: |
26 |
+ return 0; |
27 |
+ } |
28 |
+} |
29 |
+ |
30 |
+ |
31 |
/**************** |
32 |
* Read the next keyblock from stream A. |
33 |
* PENDING_PKT should be initialzed to NULL |
34 |
@@ -424,7 +445,7 @@ read_block( IOBUF a, PACKET **pending_pk |
35 |
} |
36 |
in_cert = 1; |
37 |
default: |
38 |
- if( in_cert ) { |
39 |
+ if (in_cert && valid_keyblock_packet (pkt->pkttype)) { |
40 |
if( !root ) |
41 |
root = new_kbnode( pkt ); |
42 |
else |