diff options
author | Ben Lindstrom <mouring@eviladmin.org> | 2001-04-04 23:50:21 +0000 |
---|---|---|
committer | Ben Lindstrom <mouring@eviladmin.org> | 2001-04-04 23:50:21 +0000 |
commit | 8e312f3db05059499cf6655663ce31e73d508817 (patch) | |
tree | dcf867a6a612d588a31427948ac16adf791b84d5 /kex.c | |
parent | 0cae04005ec358e5f64ee141af5e38eb3a756a30 (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.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -23,7 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | RCSID("$OpenBSD: kex.c,v 1.30 2001/04/04 20:25:37 markus Exp $"); | 26 | RCSID("$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 | ||