summaryrefslogtreecommitdiff
path: root/monitor.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2009-02-14 16:33:31 +1100
committerDamien Miller <djm@mindrot.org>2009-02-14 16:33:31 +1100
commit923e8bb7dc921b3136320f126976bfeee11c9e41 (patch)
treeb6ee668c45a15c12372e84fa912fe11df7267fe7 /monitor.c
parent330d58587f05fd34f3b1d20a64d254ea0470a6cc (diff)
- djm@cvs.openbsd.org 2009/02/12 03:26:22
[monitor.c] some paranoia: check that the serialised key is really KEY_RSA before diddling its internals
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/monitor.c b/monitor.c
index 39deedc8f..f57e74ba5 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor.c,v 1.100 2008/11/04 08:22:13 djm Exp $ */ 1/* $OpenBSD: monitor.c,v 1.101 2009/02/12 03:26:22 djm Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -1500,7 +1500,9 @@ mm_answer_rsa_challenge(int sock, Buffer *m)
1500 fatal("%s: key type mismatch", __func__); 1500 fatal("%s: key type mismatch", __func__);
1501 if ((key = key_from_blob(blob, blen)) == NULL) 1501 if ((key = key_from_blob(blob, blen)) == NULL)
1502 fatal("%s: received bad key", __func__); 1502 fatal("%s: received bad key", __func__);
1503 1503 if (key->type != KEY_RSA)
1504 fatal("%s: received bad key type %d", __func__, key->type);
1505 key->type = KEY_RSA1;
1504 if (ssh1_challenge) 1506 if (ssh1_challenge)
1505 BN_clear_free(ssh1_challenge); 1507 BN_clear_free(ssh1_challenge);
1506 ssh1_challenge = auth_rsa_generate_challenge(key); 1508 ssh1_challenge = auth_rsa_generate_challenge(key);