diff options
Diffstat (limited to 'auth2-gss.c')
-rw-r--r-- | auth2-gss.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/auth2-gss.c b/auth2-gss.c index a82b87f51..84fb384f9 100644 --- a/auth2-gss.c +++ b/auth2-gss.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2-gss.c,v 1.4 2003/10/21 09:50:06 markus Exp $ */ | 1 | /* $OpenBSD: auth2-gss.c,v 1.5 2003/11/02 11:01:03 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. | 4 | * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. |
@@ -78,19 +78,19 @@ userauth_gssapi(Authctxt *authctxt) | |||
78 | if (doid) | 78 | if (doid) |
79 | xfree(doid); | 79 | xfree(doid); |
80 | 80 | ||
81 | present = 0; | ||
81 | doid = packet_get_string(&len); | 82 | doid = packet_get_string(&len); |
82 | if (len <= 2) | ||
83 | packet_disconnect("Short OID received"); | ||
84 | 83 | ||
85 | if (doid[0] != SSH_GSS_OIDTYPE || doid[1] != len-2) { | 84 | if (len > 2 && |
86 | logit("Mechanism OID received using the old encoding form"); | 85 | doid[0] == SSH_GSS_OIDTYPE && |
87 | oid.elements = doid; | 86 | doid[1] == len - 2) { |
88 | oid.length = len; | 87 | oid.elements = doid + 2; |
88 | oid.length = len - 2; | ||
89 | gss_test_oid_set_member(&ms, &oid, supported, | ||
90 | &present); | ||
89 | } else { | 91 | } else { |
90 | oid.elements = doid + 2; | 92 | logit("Badly formed OID received"); |
91 | oid.length = len - 2; | ||
92 | } | 93 | } |
93 | gss_test_oid_set_member(&ms, &oid, supported, &present); | ||
94 | } while (mechs > 0 && !present); | 94 | } while (mechs > 0 && !present); |
95 | 95 | ||
96 | gss_release_oid_set(&ms, &supported); | 96 | gss_release_oid_set(&ms, &supported); |
@@ -109,7 +109,7 @@ userauth_gssapi(Authctxt *authctxt) | |||
109 | 109 | ||
110 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE); | 110 | packet_start(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE); |
111 | 111 | ||
112 | /* Return OID in same format as we received it*/ | 112 | /* Return the OID that we received */ |
113 | packet_put_string(doid, len); | 113 | packet_put_string(doid, len); |
114 | 114 | ||
115 | packet_send(); | 115 | packet_send(); |