diff options
Diffstat (limited to 'source3/auth/auth_winbind.c')
-rw-r--r-- | source3/auth/auth_winbind.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source3/auth/auth_winbind.c b/source3/auth/auth_winbind.c index 93028c4cd82..86a6194bcfb 100644 --- a/source3/auth/auth_winbind.c +++ b/source3/auth/auth_winbind.c @@ -128,12 +128,14 @@ static NTSTATUS check_winbind_security(const struct auth_context *auth_context, /* module initialisation */ static NTSTATUS auth_init_winbind(struct auth_context *auth_context, const char *param, auth_methods **auth_method) { - if (!make_auth_methods(auth_context, auth_method)) { + struct auth_methods *result; + + result = TALLOC_ZERO_P(auth_context, struct auth_methods); + if (result == NULL) { return NT_STATUS_NO_MEMORY; } - - (*auth_method)->name = "winbind"; - (*auth_method)->auth = check_winbind_security; + result->name = "winbind"; + result->auth = check_winbind_security; if (param && *param) { /* we load the 'fallback' module - if winbind isn't here, call this @@ -142,8 +144,10 @@ static NTSTATUS auth_init_winbind(struct auth_context *auth_context, const char if (!load_auth_module(auth_context, param, &priv)) { return NT_STATUS_UNSUCCESSFUL; } - (*auth_method)->private_data = (void *)priv; + result->private_data = (void *)priv; } + + *auth_method = result; return NT_STATUS_OK; } |