s3: Do not use state->mem_ctx in fillup_password_policy
authorVolker Lendecke <vl@samba.org>
Fri, 28 Jan 2011 18:04:04 +0000 (19:04 +0100)
committerVolker Lendecke <vlendec@samba.org>
Fri, 28 Jan 2011 21:54:19 +0000 (22:54 +0100)
source3/winbindd/winbindd_pam.c

index 456e47b5ae66159428a740d3af6bf85e7d75d6c8..9555be0d852861b4bb9caadd22c1be451e351fc7 100644 (file)
@@ -390,25 +390,29 @@ static void fill_in_password_policy(struct winbindd_response *r,
 static NTSTATUS fillup_password_policy(struct winbindd_domain *domain,
                                       struct winbindd_cli_state *state)
 {
+       TALLOC_CTX *frame = talloc_stackframe();
        struct winbindd_methods *methods;
-       NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status;
        struct samr_DomInfo1 password_policy;
 
        if ( !winbindd_can_contact_domain( domain ) ) {
                DEBUG(5,("fillup_password_policy: No inbound trust to "
                         "contact domain %s\n", domain->name));
-               return NT_STATUS_NOT_SUPPORTED;
+               status = NT_STATUS_NOT_SUPPORTED;
+               goto done;
        }
 
        methods = domain->methods;
 
-       status = methods->password_policy(domain, state->mem_ctx, &password_policy);
+       status = methods->password_policy(domain, talloc_tos(), &password_policy);
        if (NT_STATUS_IS_ERR(status)) {
-               return status;
+               goto done;
        }
 
        fill_in_password_policy(state->response, &password_policy);
 
+done:
+       TALLOC_FREE(frame);
        return NT_STATUS_OK;
 }