aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2001-06-16 11:09:29 +0000
committerWerner Koch <[email protected]>2001-06-16 11:09:29 +0000
commitae78aed6b619d45a1569e55c19c83d7af8a07534 (patch)
tree6055458777a9c22ce221bf7feff72cfd32d7f9d9
parent"$1" (diff)
downloadgnupg-ae78aed6b619d45a1569e55c19c83d7af8a07534.tar.gz
gnupg-ae78aed6b619d45a1569e55c19c83d7af8a07534.zip
one debian bug fixed
-rw-r--r--THANKS1
-rw-r--r--g10/ChangeLog6
-rw-r--r--g10/getkey.c11
3 files changed, 17 insertions, 1 deletions
diff --git a/THANKS b/THANKS
index 86d1c1997..8eb405b66 100644
--- a/THANKS
+++ b/THANKS
@@ -50,6 +50,7 @@ Fabio Coatti [email protected]
Felix von Leitner [email protected]
fish stiqz [email protected]
Florian Weimer [email protected]
+Francesco Potorti [email protected]
Frank Donahoe [email protected]
Frank Heckenbach [email protected]
Frank Stajano [email protected]
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 03a52b153..af3e65bf7 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,9 @@
+2001-06-15 Werner Koch <[email protected]>
+
+ * getkey.c (merge_selfsigs): Exit gracefully when a secret key is
+ encountered. May happen if a secret key is in public keyring.
+ Reported by Francesco Potorti.
+
2001-06-12 Werner Koch <[email protected]>
* getkey.c (compare_name): Use ascii_memistr(), ascii_memcasecmp()
diff --git a/g10/getkey.c b/g10/getkey.c
index bd21f956f..96ab714b5 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -1807,8 +1807,17 @@ merge_selfsigs( KBNODE keyblock )
int revoked;
PKT_public_key *main_pk;
- if ( keyblock->pkt->pkttype != PKT_PUBLIC_KEY )
+ if ( keyblock->pkt->pkttype != PKT_PUBLIC_KEY ) {
+ if (keyblock->pkt->pkttype == PKT_SECRET_KEY ) {
+ log_error ("expected public key but found secret key "
+ "- must stop\n");
+ /* we better exit here becuase a public key is expected at
+ other places too. FIXME: Figure this out earlier and
+ don't get to here at all */
+ g10_exit (1);
+ }
BUG ();
+ }
merge_selfsigs_main ( keyblock, &revoked );
main_pk = keyblock->pkt->pkt.public_key;