1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

libnetjoin: Fix unjoining when no KRB5CCNAME is around.

Guenther
(This used to be commit 7fd237c545)
This commit is contained in:
Günther Deschner 2008-04-14 16:15:18 +02:00
parent bc65d96782
commit cbd07aa047

View File

@ -1449,10 +1449,18 @@ static int libnet_destroy_JoinCtx(struct libnet_JoinCtx *r)
static int libnet_destroy_UnjoinCtx(struct libnet_UnjoinCtx *r) static int libnet_destroy_UnjoinCtx(struct libnet_UnjoinCtx *r)
{ {
const char *krb5_cc_env = NULL;
if (r->in.ads) { if (r->in.ads) {
ads_destroy(&r->in.ads); ads_destroy(&r->in.ads);
} }
krb5_cc_env = getenv(KRB5_ENV_CCNAME);
if (krb5_cc_env && StrCaseCmp(krb5_cc_env, "MEMORY:libnetjoin")) {
unsetenv(KRB5_ENV_CCNAME);
}
return 0; return 0;
} }
@ -1496,6 +1504,7 @@ WERROR libnet_init_UnjoinCtx(TALLOC_CTX *mem_ctx,
struct libnet_UnjoinCtx **r) struct libnet_UnjoinCtx **r)
{ {
struct libnet_UnjoinCtx *ctx; struct libnet_UnjoinCtx *ctx;
const char *krb5_cc_env = NULL;
ctx = talloc_zero(mem_ctx, struct libnet_UnjoinCtx); ctx = talloc_zero(mem_ctx, struct libnet_UnjoinCtx);
if (!ctx) { if (!ctx) {
@ -1507,6 +1516,13 @@ WERROR libnet_init_UnjoinCtx(TALLOC_CTX *mem_ctx,
ctx->in.machine_name = talloc_strdup(mem_ctx, global_myname()); ctx->in.machine_name = talloc_strdup(mem_ctx, global_myname());
W_ERROR_HAVE_NO_MEMORY(ctx->in.machine_name); W_ERROR_HAVE_NO_MEMORY(ctx->in.machine_name);
krb5_cc_env = getenv(KRB5_ENV_CCNAME);
if (!krb5_cc_env || (strlen(krb5_cc_env) == 0)) {
krb5_cc_env = talloc_strdup(mem_ctx, "MEMORY:libnetjoin");
W_ERROR_HAVE_NO_MEMORY(krb5_cc_env);
setenv(KRB5_ENV_CCNAME, krb5_cc_env, 1);
}
*r = ctx; *r = ctx;
return WERR_OK; return WERR_OK;