The branch, master has been updated
       via  50dff7e pidl: Make dcesrv\_$name\_interface "static const"
       via  0e2f03f s4-rpc_server: Avoid extern reference to 
dcesrv_mgmt_interface and memcpy()
      from  52fad16 s3: torture: Regression test case for permissions check on 
rename.

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 50dff7e094d48793b432992a28571a6f7e5cc73c
Author: Andrew Bartlett <[email protected]>
Date:   Mon Nov 21 11:21:50 2016 +1300

    pidl: Make dcesrv\_$name\_interface "static const"
    
    This moves it out of the global namespace
    
    Signed-off-by: Andrew Bartlett <[email protected]>
    Reviewed-by: Stefan Metzmacher <[email protected]>
    
    Autobuild-User(master): Stefan Metzmacher <[email protected]>
    Autobuild-Date(master): Thu Dec  8 13:25:57 CET 2016 on sn-devel-144

commit 0e2f03f9bd1cf91aa09e528d1a02c88262fdb2a9
Author: Andrew Bartlett <[email protected]>
Date:   Mon Nov 21 11:31:27 2016 +1300

    s4-rpc_server: Avoid extern reference to dcesrv_mgmt_interface and memcpy()
    
    Use a typesafe struct-returning function instead
    
    Signed-off-by: Andrew Bartlett <[email protected]>
    Reviewed-by: Stefan Metzmacher <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm | 2 +-
 source4/rpc_server/dcerpc_server.c       | 5 +----
 source4/rpc_server/dcesrv_mgmt.c         | 6 ++++++
 3 files changed, 8 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm 
b/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm
index 7077864..7ca18a8 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm
@@ -192,7 +192,7 @@ static NTSTATUS $name\__op_ndr_push(struct 
dcesrv_call_state *dce_call, TALLOC_C
        return NT_STATUS_OK;
 }
 
-const struct dcesrv_interface dcesrv\_$name\_interface = {
+static const struct dcesrv_interface dcesrv\_$name\_interface = {
        .name           = \"$name\",
        .syntax_id  = {".print_uuid($uuid).",$if_version},
        .bind           = $name\__op_bind,
diff --git a/source4/rpc_server/dcerpc_server.c 
b/source4/rpc_server/dcerpc_server.c
index 862127b..072e352 100644
--- a/source4/rpc_server/dcerpc_server.c
+++ b/source4/rpc_server/dcerpc_server.c
@@ -42,8 +42,6 @@
 #include "lib/util/samba_modules.h"
 #include "librpc/gen_ndr/ndr_dcerpc.h"
 
-extern const struct dcesrv_interface dcesrv_mgmt_interface;
-
 static NTSTATUS dcesrv_negotiate_contexts(struct dcesrv_call_state *call,
                                const struct dcerpc_bind *b,
                                struct dcerpc_ack_ctx *ack_ctx_list);
@@ -283,8 +281,7 @@ _PUBLIC_ NTSTATUS dcesrv_interface_register(struct 
dcesrv_context *dce_ctx,
                        return NT_STATUS_NO_MEMORY;
                }
 
-               memcpy(&(ifl->iface), &dcesrv_mgmt_interface, 
-                          sizeof(struct dcesrv_interface));
+               ifl->iface = dcesrv_get_mgmt_interface();
 
                DLIST_ADD(ep->interface_list, ifl);
        }
diff --git a/source4/rpc_server/dcesrv_mgmt.c b/source4/rpc_server/dcesrv_mgmt.c
index 4d3428d..577f0fb 100644
--- a/source4/rpc_server/dcesrv_mgmt.c
+++ b/source4/rpc_server/dcesrv_mgmt.c
@@ -21,6 +21,7 @@
 
 #include "includes.h"
 #include "rpc_server/dcerpc_server.h"
+#include "rpc_server/dcerpc_server_proto.h"
 #include "librpc/gen_ndr/ndr_mgmt.h"
 
 #define DCESRV_INTERFACE_MGMT_BIND(call, iface) \
@@ -107,3 +108,8 @@ static WERROR dcesrv_mgmt_inq_princ_name(struct 
dcesrv_call_state *dce_call, TAL
 
 /* include the generated boilerplate */
 #include "librpc/gen_ndr/ndr_mgmt_s.c"
+
+const struct dcesrv_interface dcesrv_get_mgmt_interface(void)
+{
+       return dcesrv_mgmt_interface;
+}


-- 
Samba Shared Repository

Reply via email to