[PATCH] Don't copy the rpc function pointers

Volker Lendecke vl at samba.org
Sun Dec 9 18:46:06 GMT 2007


This actually shows up in a valgrind massif run with 4.1% of allocated memory.
I don't see why we would have to make a copy here.

Metze?
---
 source/rpc_server/srv_pipe.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c
index 49ffcf1..5ede0c9 100644
--- a/source/rpc_server/srv_pipe.c
+++ b/source/rpc_server/srv_pipe.c
@@ -714,7 +714,7 @@ struct rpc_table {
 		const char *clnt;
 		const char *srv;
 	} pipe;
-	struct api_struct *cmds;
+	const struct api_struct *cmds;
 	int n_cmds;
 };
 
@@ -1075,12 +1075,8 @@ NTSTATUS rpc_pipe_register_commands(int version, const char *clnt, const char *s
         ZERO_STRUCTP(rpc_entry);
         rpc_entry->pipe.clnt = SMB_STRDUP(clnt);
         rpc_entry->pipe.srv = SMB_STRDUP(srv);
-        rpc_entry->cmds = SMB_REALLOC_ARRAY(rpc_entry->cmds, struct api_struct, rpc_entry->n_cmds + size);
-	if (!rpc_entry->cmds) {
-		return NT_STATUS_NO_MEMORY;
-	}
-        memcpy(rpc_entry->cmds + rpc_entry->n_cmds, cmds, size * sizeof(struct api_struct));
-        rpc_entry->n_cmds += size;
+        rpc_entry->cmds = cmds;
+        rpc_entry->n_cmds = size;
         
         return NT_STATUS_OK;
 }
-- 
1.5.3.7



More information about the samba-technical mailing list