The branch, master has been updated via 6d8b4f5 s3-rpc_server: Add missing rng_fault_state in epmapper. via ae292ed s3-rpc_server: Handle services with multiple pipe names. from ccaab14 ldb: make the 'spy' code more paranoid
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 6d8b4f59e41051bcdfc514cce59a4a286c480bda Author: Andreas Schneider <a...@samba.org> Date: Thu Sep 1 09:32:33 2011 +0200 s3-rpc_server: Add missing rng_fault_state in epmapper. We need to raise an exception so we need to set the rng_fault_state for epm_Insert and epm_Delete if someone connects over a transport other than NCALRPC. Autobuild-User: Andreas Schneider <a...@cryptomilk.org> Autobuild-Date: Thu Sep 1 15:59:50 CEST 2011 on sn-devel-104 commit ae292ed1806474fdbae1aef9776a933316e057bf Author: Andreas Schneider <a...@samba.org> Date: Wed Aug 31 16:46:35 2011 +0200 s3-rpc_server: Handle services with multiple pipe names. The configuration should only use the default pipe name to configure all of them correctly. ----------------------------------------------------------------------- Summary of changes: selftest/target/Samba3.pm | 2 -- source3/rpc_server/epmapper/srv_epmapper.c | 2 ++ source3/rpc_server/rpc_config.c | 12 ++++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) Changeset truncated at 500 lines: diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index d0ca0a1..a5c11d9 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -288,7 +288,6 @@ sub setup_plugin_s4_dc($$$$) rpc_daemon:epmd = disabled rpc_daemon:lsasd = disabled rpc_server:tcpip = no - rpc_server:lsass = external rpc_server:lsarpc = external rpc_server:netlogon = external rpc_server:samr = external @@ -905,7 +904,6 @@ sub provision($$$$$$$) ncalrpc dir = $prefix_abs/ncalrpc rpc_server:epmapper = external rpc_server:spoolss = external - rpc_server:lsass = external rpc_server:lsarpc = external rpc_server:samr = external rpc_server:netlogon = external diff --git a/source3/rpc_server/epmapper/srv_epmapper.c b/source3/rpc_server/epmapper/srv_epmapper.c index fa3177e..c492580 100644 --- a/source3/rpc_server/epmapper/srv_epmapper.c +++ b/source3/rpc_server/epmapper/srv_epmapper.c @@ -306,6 +306,7 @@ error_status_t _epm_Insert(struct pipes_struct *p, /* If this is not a priviledged users, return */ if (p->transport != NCALRPC || !is_priviledged_pipe(p->session_info)) { + p->rng_fault_state = true; return EPMAPPER_STATUS_CANT_PERFORM_OP; } @@ -442,6 +443,7 @@ error_status_t _epm_Delete(struct pipes_struct *p, /* If this is not a priviledged users, return */ if (p->transport != NCALRPC || !is_priviledged_pipe(p->session_info)) { + p->rng_fault_state = true; return EPMAPPER_STATUS_CANT_PERFORM_OP; } diff --git a/source3/rpc_server/rpc_config.c b/source3/rpc_server/rpc_config.c index a1c639c..3ddc189 100644 --- a/source3/rpc_server/rpc_config.c +++ b/source3/rpc_server/rpc_config.c @@ -41,20 +41,28 @@ struct rpc_service_defaults { enum rpc_service_mode_e rpc_service_mode(const char *name) { + const char *pipe_name = name; const char *rpcsrv_type; enum rpc_service_mode_e state; const char *def; int i; + /* Handle pipes with multiple names */ + if (strcmp(pipe_name, "lsass") == 0) { + pipe_name = "lsarpc"; + } else if (strcmp(pipe_name, "plugplay") == 0) { + pipe_name = "ntsvcs"; + } + def = "embedded"; for (i = 0; rpc_service_defaults[i].name; i++) { - if (strcasecmp_m(name, rpc_service_defaults[i].name) == 0) { + if (strcasecmp_m(pipe_name, rpc_service_defaults[i].name) == 0) { def = rpc_service_defaults[i].def_mode; } } rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM, - "rpc_server", name, def); + "rpc_server", pipe_name, def); if (strcasecmp_m(rpcsrv_type, "embedded") == 0) { state = RPC_SERVICE_MODE_EMBEDDED; -- Samba Shared Repository