s3:rpc_server/svcctl: don't allocate return values on a temporary stackframe
authorStefan Metzmacher <metze@samba.org>
Thu, 16 Jun 2011 06:33:09 +0000 (08:33 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 16 Jun 2011 09:34:34 +0000 (11:34 +0200)
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

source3/rpc_server/svcctl/srv_svcctl_nt.c

index 96ac399e1653735ea997242836ffe66813aaa197..4f8a2c1b7da851595d2324aac0f80ac428c7e8dd 100644 (file)
@@ -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;
 }