diff options
author | Volker Lendecke <vl@samba.org> | 2007-12-09 19:46:06 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2007-12-09 11:11:21 -0800 |
commit | 616d6b97e594a846e9b3ac4cbe48538d649462e9 (patch) | |
tree | 9a5040de8614fc2785dbabd2b7cfccc3b7ea42cd /source | |
parent | 85a7f800b6ff8a21d234cee1a24123fb48bafa13 (diff) | |
download | samba-616d6b97e594a846e9b3ac4cbe48538d649462e9.tar.gz samba-616d6b97e594a846e9b3ac4cbe48538d649462e9.tar.xz samba-616d6b97e594a846e9b3ac4cbe48538d649462e9.zip |
Don't copy the rpc function pointers
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?
Diffstat (limited to 'source')
-rw-r--r-- | 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 49ffcf13a64..5ede0c93f4a 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; } |