Bugzilla – Attachment 210 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
G3 (text/plain), 1.92 KB, created by
Markus Friedl
on 2003-01-27 22:31:13 AEDT
(
hide
)
Description:
update
Filename:
MIME Type:
Creator:
Markus Friedl
Created:
2003-01-27 22:31:13 AEDT
Size:
1.92 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 11:32:25 -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,28 @@ > xfree(hostkeyalg); > } > >+static int >+proposals_match(char *my[PROPOSAL_MAX], char *peer[PROPOSAL_MAX]) >+{ >+ int i, j; >+ int prop[] = { PROPOSAL_KEX_ALGS, PROPOSAL_SERVER_HOST_KEY_ALGS, -1 }; >+ char *p; >+ >+ for (i = 0; prop[i] != -1; i++) { >+ j = prop[i]; >+ if ((p = strchr(my[j], ',')) != NULL) >+ *p = '\0'; >+ if ((p = strchr(peer[j], ',')) != NULL) >+ *p = '\0'; >+ if (strcmp(my[j], peer[j]) != 0) { >+ debug2("proposal mismatch: %s %s", my[j], peer[j]); >+ return (0); >+ } >+ } >+ debug2("proposals match"); >+ return (1); >+} >+ > static void > kex_choose_conf(Kex *kex) > { >@@ -327,9 +351,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 +397,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