-/* $OpenBSD: auth2-gss.c,v 1.7 2003/11/21 11:57:03 djm Exp $ */
+/* $OpenBSD: auth2-gss.c,v 1.13 2006/03/20 04:07:22 djm Exp $ */
/*
* Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved.
#include "log.h"
#include "dispatch.h"
#include "servconf.h"
-#include "compat.h"
#include "packet.h"
#include "monitor_wrap.h"
/*
* We only support those mechanisms that we know about (ie ones that we know
- * how to check local user kuserok and the like
+ * how to check local user kuserok and the like)
*/
static int
userauth_gssapi(Authctxt *authctxt)
{
- gss_OID_desc oid = {0, NULL};
+ gss_OID_desc goid = {0, NULL};
Gssctxt *ctxt = NULL;
int mechs;
gss_OID_set supported;
int present;
OM_uint32 ms;
u_int len;
- char *doid = NULL;
+ u_char *doid = NULL;
if (!authctxt->valid || authctxt->user == NULL)
return (0);
present = 0;
doid = packet_get_string(&len);
- if (len > 2 &&
- doid[0] == SSH_GSS_OIDTYPE &&
- doid[1] == len - 2) {
- oid.elements = doid + 2;
- oid.length = len - 2;
- gss_test_oid_set_member(&ms, &oid, supported,
+ if (len > 2 && doid[0] == SSH_GSS_OIDTYPE &&
+ doid[1] == len - 2) {
+ goid.elements = doid + 2;
+ goid.length = len - 2;
+ gss_test_oid_set_member(&ms, &goid, supported,
&present);
} else {
logit("Badly formed OID received");
return (0);
}
- if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &oid)))) {
+ if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &goid)))) {
+ if (ctxt != NULL)
+ ssh_gssapi_delete_ctx(&ctxt);
xfree(doid);
return (0);
}
- authctxt->methoddata=(void *)ctxt;
+ authctxt->methoddata = (void *)ctxt;
packet_start(SSH2_MSG_USERAUTH_GSSAPI_RESPONSE);