summaryrefslogtreecommitdiff
path: root/kex.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-04-04 23:50:21 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-04-04 23:50:21 +0000
commit8e312f3db05059499cf6655663ce31e73d508817 (patch)
treedcf867a6a612d588a31427948ac16adf791b84d5 /kex.c
parent0cae04005ec358e5f64ee141af5e38eb3a756a30 (diff)
- markus@cvs.openbsd.org 2001/04/04 22:04:35
[kex.c kexgex.c serverloop.c] parse full kexinit packet. make server-side more robust, too.
Diffstat (limited to 'kex.c')
-rw-r--r--kex.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/kex.c b/kex.c
index da9c56eb0..0720c073d 100644
--- a/kex.c
+++ b/kex.c
@@ -23,7 +23,7 @@
23 */ 23 */
24 24
25#include "includes.h" 25#include "includes.h"
26RCSID("$OpenBSD: kex.c,v 1.30 2001/04/04 20:25:37 markus Exp $"); 26RCSID("$OpenBSD: kex.c,v 1.31 2001/04/04 22:04:34 markus Exp $");
27 27
28#include <openssl/crypto.h> 28#include <openssl/crypto.h>
29 29
@@ -166,6 +166,7 @@ kex_input_kexinit(int type, int plen, void *ctxt)
166{ 166{
167 char *ptr; 167 char *ptr;
168 int dlen; 168 int dlen;
169 int i;
169 Kex *kex = (Kex *)ctxt; 170 Kex *kex = (Kex *)ctxt;
170 171
171 debug("SSH2_MSG_KEXINIT received"); 172 debug("SSH2_MSG_KEXINIT received");
@@ -175,6 +176,15 @@ kex_input_kexinit(int type, int plen, void *ctxt)
175 ptr = packet_get_raw(&dlen); 176 ptr = packet_get_raw(&dlen);
176 buffer_append(&kex->peer, ptr, dlen); 177 buffer_append(&kex->peer, ptr, dlen);
177 178
179 /* discard packet */
180 for (i = 0; i < KEX_COOKIE_LEN; i++)
181 packet_get_char();
182 for (i = 0; i < PROPOSAL_MAX; i++)
183 xfree(packet_get_string(NULL));
184 packet_get_char();
185 packet_get_int();
186 packet_done();
187
178 kex_kexinit_finish(kex); 188 kex_kexinit_finish(kex);
179} 189}
180 190