net_vampire: let dump_database() return NTSTATUS.
authorGünther Deschner <gd@samba.org>
Tue, 10 Jun 2008 23:23:43 +0000 (01:23 +0200)
committerGünther Deschner <gd@samba.org>
Fri, 13 Jun 2008 21:39:08 +0000 (23:39 +0200)
Guenther

source/utils/net_rpc_samsync.c

index 44c95f9509c20067038c2998a821b69d496aa068..323f67cc5ae36109a10f684369d2d14075c7f148 100644 (file)
@@ -324,12 +324,12 @@ static void display_sam_entry(struct netr_DELTA_ENUM *r)
        }
 }
 
-static void dump_database(struct rpc_pipe_client *pipe_hnd,
-                         enum netr_SamDatabaseID database_id)
+static NTSTATUS dump_database(struct rpc_pipe_client *pipe_hnd,
+                             enum netr_SamDatabaseID database_id)
 {
-        NTSTATUS result;
+       NTSTATUS result;
        int i;
-        TALLOC_CTX *mem_ctx;
+       TALLOC_CTX *mem_ctx;
        const char *logon_server = pipe_hnd->desthost;
        const char *computername = global_myname();
        struct netr_Authenticator credential;
@@ -341,7 +341,7 @@ static void dump_database(struct rpc_pipe_client *pipe_hnd,
        ZERO_STRUCT(return_authenticator);
 
        if (!(mem_ctx = talloc_init("dump_database"))) {
-               return;
+               return NT_STATUS_NO_MEMORY;
        }
 
        switch(database_id) {
@@ -380,7 +380,7 @@ static void dump_database(struct rpc_pipe_client *pipe_hnd,
                if (!netlogon_creds_client_check(pipe_hnd->dc,
                                                 &return_authenticator.cred)) {
                        DEBUG(0,("credentials chain check failed\n"));
-                       return;
+                       return NT_STATUS_ACCESS_DENIED;
                }
 
                if (NT_STATUS_IS_ERR(result)) {
@@ -405,6 +405,8 @@ static void dump_database(struct rpc_pipe_client *pipe_hnd,
        } while (NT_STATUS_EQUAL(result, STATUS_MORE_ENTRIES));
 
        talloc_destroy(mem_ctx);
+
+       return result;
 }
 
 /* dump sam database via samsync rpc calls */