Bugzilla – Attachment 211 Details for
Bug 148
Key Exchange Guesses not supported
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
update #3
G4 (text/plain), 1.96 KB, created by
Markus Friedl
on 2003-01-27 23:00:44 AEDT
(
hide
)
Description:
update #3
Filename:
MIME Type:
Creator:
Markus Friedl
Created:
2003-01-27 23:00:44 AEDT
Size:
1.96 KB
patch
obsolete
>Index: kex.c >=================================================================== >RCS file: /cvs/src/usr.bin/ssh/kex.c,v >retrieving revision 1.52 >diff -u -r1.52 kex.c >--- kex.c 21 Nov 2002 22:45:31 -0000 1.52 >+++ kex.c 27 Jan 2003 12:02:16 -0000 >@@ -74,7 +74,7 @@ > > /* parse buffer and return algorithm proposal */ > static char ** >-kex_buf2prop(Buffer *raw) >+kex_buf2prop(Buffer *raw, int *first_kex_follows) > { > Buffer b; > int i; >@@ -94,6 +94,8 @@ > } > /* first kex follows / reserved */ > i = buffer_get_char(&b); >+ if (first_kex_follows != NULL) >+ *first_kex_follows = i; > debug2("kex_parse_kexinit: first_kex_follows %d ", i); > i = buffer_get_int(&b); > debug2("kex_parse_kexinit: reserved %d ", i); >@@ -317,6 +319,30 @@ > xfree(hostkeyalg); > } > >+static int >+proposals_match(char *my[PROPOSAL_MAX], char *peer[PROPOSAL_MAX]) >+{ >+ static int check[] = { >+ PROPOSAL_KEX_ALGS, PROPOSAL_SERVER_HOST_KEY_ALGS, -1 >+ }; >+ int *idx; >+ char *p; >+ >+ for (idx = &check[0]; *idx != -1; idx++) { >+ if ((p = strchr(my[*idx], ',')) != NULL) >+ *p = '\0'; >+ if ((p = strchr(peer[*idx], ',')) != NULL) >+ *p = '\0'; >+ if (strcmp(my[*idx], peer[*idx]) != 0) { >+ debug2("proposal mismatch: my %s peer %s", >+ my[*idx], peer[*idx]); >+ return (0); >+ } >+ } >+ debug2("proposals match"); >+ return (1); >+} >+ > static void > kex_choose_conf(Kex *kex) > { >@@ -327,9 +353,10 @@ > int mode; > int ctos; /* direction: if true client-to-server */ > int need; >+ int first_kex_follows, type; > >- my = kex_buf2prop(&kex->my); >- peer = kex_buf2prop(&kex->peer); >+ my = kex_buf2prop(&kex->my, NULL); >+ peer = kex_buf2prop(&kex->peer, &first_kex_follows); > > if (kex->server) { > cprop=peer; >@@ -372,6 +399,12 @@ > } > /* XXX need runden? */ > kex->we_need = need; >+ >+ /* ignore the next message if the proposals do not match */ >+ if (first_kex_follows && !proposals_match(my, peer)) { >+ type = packet_read(); >+ debug2("skipping next packet (type %u)", type); >+ } > > kex_prop_free(my); > kex_prop_free(peer);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 148
:
161
|
208
|
210
| 211