version 1.20, 2009/06/22 05:39:28 |
version 1.21, 2013/05/17 00:13:13 |
|
|
ssh_gssapi_set_oid_data(Gssctxt *ctx, void *data, size_t len) |
ssh_gssapi_set_oid_data(Gssctxt *ctx, void *data, size_t len) |
{ |
{ |
if (ctx->oid != GSS_C_NO_OID) { |
if (ctx->oid != GSS_C_NO_OID) { |
xfree(ctx->oid->elements); |
free(ctx->oid->elements); |
xfree(ctx->oid); |
free(ctx->oid); |
} |
} |
ctx->oid = xmalloc(sizeof(gss_OID_desc)); |
ctx->oid = xmalloc(sizeof(gss_OID_desc)); |
ctx->oid->length = len; |
ctx->oid->length = len; |
|
|
|
|
s = ssh_gssapi_last_error(ctxt, NULL, NULL); |
s = ssh_gssapi_last_error(ctxt, NULL, NULL); |
debug("%s", s); |
debug("%s", s); |
xfree(s); |
free(s); |
} |
} |
|
|
char * |
char * |
|
|
if ((*ctx)->name != GSS_C_NO_NAME) |
if ((*ctx)->name != GSS_C_NO_NAME) |
gss_release_name(&ms, &(*ctx)->name); |
gss_release_name(&ms, &(*ctx)->name); |
if ((*ctx)->oid != GSS_C_NO_OID) { |
if ((*ctx)->oid != GSS_C_NO_OID) { |
xfree((*ctx)->oid->elements); |
free((*ctx)->oid->elements); |
xfree((*ctx)->oid); |
free((*ctx)->oid); |
(*ctx)->oid = GSS_C_NO_OID; |
(*ctx)->oid = GSS_C_NO_OID; |
} |
} |
if ((*ctx)->creds != GSS_C_NO_CREDENTIAL) |
if ((*ctx)->creds != GSS_C_NO_CREDENTIAL) |
|
|
if ((*ctx)->client_creds != GSS_C_NO_CREDENTIAL) |
if ((*ctx)->client_creds != GSS_C_NO_CREDENTIAL) |
gss_release_cred(&ms, &(*ctx)->client_creds); |
gss_release_cred(&ms, &(*ctx)->client_creds); |
|
|
xfree(*ctx); |
free(*ctx); |
*ctx = NULL; |
*ctx = NULL; |
} |
} |
|
|
|
|
&gssbuf, GSS_C_NT_HOSTBASED_SERVICE, &ctx->name))) |
&gssbuf, GSS_C_NT_HOSTBASED_SERVICE, &ctx->name))) |
ssh_gssapi_error(ctx); |
ssh_gssapi_error(ctx); |
|
|
xfree(gssbuf.value); |
free(gssbuf.value); |
return (ctx->major); |
return (ctx->major); |
} |
} |
|
|