summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2011-06-16 08:33:09 +0200
committerStefan Metzmacher <metze@samba.org>2011-06-16 11:34:34 +0200
commit48de3e51eacbd1051f79dc99aaac8a4ec988fde5 (patch)
tree3868dfa5e2b2fea08370dfb79a98b020e1a70181 /source3/rpc_server
parent03ea6b5b9e6baae3596649b9d9cfe79dbd44a9a4 (diff)
downloadsamba-48de3e51eacbd1051f79dc99aaac8a4ec988fde5.tar.gz
samba-48de3e51eacbd1051f79dc99aaac8a4ec988fde5.tar.bz2
samba-48de3e51eacbd1051f79dc99aaac8a4ec988fde5.zip
s3:rpc_server/svcctl: don't allocate return values on a temporary stackframe
And always initialize the whole return structure. This caused samba3.posix_s3.rpc.svcctl to be flakey. metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Thu Jun 16 11:34:34 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/svcctl/srv_svcctl_nt.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/source3/rpc_server/svcctl/srv_svcctl_nt.c b/source3/rpc_server/svcctl/srv_svcctl_nt.c
index 96ac399e16..4f8a2c1b7d 100644
--- a/source3/rpc_server/svcctl/srv_svcctl_nt.c
+++ b/source3/rpc_server/svcctl/srv_svcctl_nt.c
@@ -668,17 +668,18 @@ WERROR _svcctl_QueryServiceStatusEx(struct pipes_struct *p,
/********************************************************************
********************************************************************/
-static WERROR fill_svc_config(TALLOC_CTX *ctx,
+static WERROR fill_svc_config(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
struct auth_serversupplied_info *session_info,
const char *name,
struct QUERY_SERVICE_CONFIG *config)
{
- TALLOC_CTX *mem_ctx = talloc_stackframe();
const char *result = NULL;
/* now fill in the individual values */
+ ZERO_STRUCTP(config);
+
config->displayname = svcctl_lookup_dispname(mem_ctx,
msg_ctx,
session_info,
@@ -720,9 +721,6 @@ static WERROR fill_svc_config(TALLOC_CTX *ctx,
else
config->start_type = SVCCTL_DEMAND_START;
-
- talloc_free(mem_ctx);
-
return WERR_OK;
}