From: Jakub Bogusz Date: Fri, 19 Jun 2015 22:05:21 +0000 (+0200) Subject: - up to 4.2.2 X-Git-Tag: auto/th/samba-4.2.2-1~1 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=c174096877a0745605cb66c08527bc864ec91cc9;p=packages%2Fsamba.git - up to 4.2.2 - removed obsolete dcerpc patches --- diff --git a/samba-dcerpc-multiplexed.patch b/samba-dcerpc-multiplexed.patch deleted file mode 100644 index 9c1f463..0000000 --- a/samba-dcerpc-multiplexed.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 8c05ae93755a6f0f9887dd99f6356d488e337329 Mon Sep 17 00:00:00 2001 -From: Julien Kerihuel -Date: Tue, 24 Mar 2015 21:06:03 -0700 -Subject: [PATCH] Add multiplex state to dcerpc flags and control over - multiplex PFC flag in bind_ack and and dcesrv_alter replies - -Signed-off-by: Julien Kerihuel -Reviewed-by: "Stefan (metze) Metzmacher" -Reviewed-by: Jelmer Vernooij -(cherry picked from commit caaf89e899c2a3926fb9e54d1c86f1a9cd5d7618) ---- - source4/rpc_server/dcerpc_server.c | 15 ++++++++++++++- - source4/rpc_server/dcerpc_server.h | 1 + - 2 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c -index 4d5e166..4681e17 100644 ---- a/source4/rpc_server/dcerpc_server.c -+++ b/source4/rpc_server/dcerpc_server.c -@@ -614,6 +614,12 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call) - call->conn->cli_max_recv_frag = MIN(0x2000, call->pkt.u.bind.max_recv_frag); - } - -+ if ((call->pkt.pfc_flags & DCERPC_PFC_FLAG_CONC_MPX) && -+ (call->state_flags & DCESRV_CALL_STATE_FLAG_MULTIPLEXED)) { -+ call->context->conn->state_flags |= DCESRV_CALL_STATE_FLAG_MULTIPLEXED; -+ extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; -+ } -+ - /* handle any authentication that is being requested */ - if (!dcesrv_auth_bind(call)) { - talloc_free(call->context); -@@ -793,6 +799,7 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) - NTSTATUS status; - uint32_t result=0, reason=0; - uint32_t context_id; -+ uint32_t extra_flags = 0; - - /* handle any authentication that is being requested */ - if (!dcesrv_auth_alter(call)) { -@@ -826,12 +833,18 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) - reason = DCERPC_BIND_REASON_ASYNTAX; - } - -+ if ((call->pkt.pfc_flags & DCERPC_PFC_FLAG_CONC_MPX)) { -+ if (call->context->conn->state_flags & DCESRV_CALL_STATE_FLAG_MULTIPLEXED) { -+ extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; -+ } -+ } -+ - /* setup a alter_resp */ - dcesrv_init_hdr(&pkt, lpcfg_rpc_big_endian(call->conn->dce_ctx->lp_ctx)); - pkt.auth_length = 0; - pkt.call_id = call->pkt.call_id; - pkt.ptype = DCERPC_PKT_ALTER_RESP; -- pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST; -+ pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST | extra_flags; - pkt.u.alter_resp.max_xmit_frag = 0x2000; - pkt.u.alter_resp.max_recv_frag = 0x2000; - if (result == 0) { -diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h -index c5d8632..2346876 100644 ---- a/source4/rpc_server/dcerpc_server.h -+++ b/source4/rpc_server/dcerpc_server.h -@@ -101,6 +101,7 @@ struct dcesrv_call_state { - */ - #define DCESRV_CALL_STATE_FLAG_ASYNC (1<<0) - #define DCESRV_CALL_STATE_FLAG_MAY_ASYNC (1<<1) -+#define DCESRV_CALL_STATE_FLAG_MULTIPLEXED (1<<3) - uint32_t state_flags; - - /* the time the request arrived in the server */ --- -1.9.1 - diff --git a/samba-dcerpc-pending-call.patch b/samba-dcerpc-pending-call.patch deleted file mode 100644 index 19c8479..0000000 --- a/samba-dcerpc-pending-call.patch +++ /dev/null @@ -1,87 +0,0 @@ -From c35e4be4f481312e3b0d639ae8bb980786749321 Mon Sep 17 00:00:00 2001 -From: Julien Kerihuel -Date: Mon, 6 Apr 2015 11:26:58 +0200 -Subject: [PATCH] Add DCERPC flag to call unbind hooks without destroying the - connection itself upon termination of a connection with outstanding pending - calls. - -Reviewed-by: Stefan Metzmacher -Reviewed-by: Jelmer Vernooij - -Autobuild-User(master): Jeremy Allison -Autobuild-Date(master): Tue Apr 14 20:39:34 CEST 2015 on sn-devel-104 - -(cherry picked from commit fd90d270c7e97a639f42a96b674a674d1b51aa0d) ---- - source4/rpc_server/dcerpc_server.c | 21 +++++++++++++++++++++ - source4/rpc_server/dcerpc_server.h | 1 + - 2 files changed, 22 insertions(+) - -diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c -index 4681e17..f25aa68 100644 ---- a/source4/rpc_server/dcerpc_server.c -+++ b/source4/rpc_server/dcerpc_server.c -@@ -504,6 +504,7 @@ static int dcesrv_connection_context_destructor(struct dcesrv_connection_context - - if (c->iface && c->iface->unbind) { - c->iface->unbind(c, c->iface); -+ c->iface = NULL; - } - - return 0; -@@ -620,6 +621,10 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call) - extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; - } - -+ if (call->state_flags & DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL) { -+ call->context->conn->state_flags |= DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL; -+ } -+ - /* handle any authentication that is being requested */ - if (!dcesrv_auth_bind(call)) { - talloc_free(call->context); -@@ -839,6 +844,10 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) - } - } - -+ if (call->state_flags & DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL) { -+ call->context->conn->state_flags |= DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL; -+ } -+ - /* setup a alter_resp */ - dcesrv_init_hdr(&pkt, lpcfg_rpc_big_endian(call->conn->dce_ctx->lp_ctx)); - pkt.auth_length = 0; -@@ -1377,6 +1386,18 @@ static void dcesrv_cleanup_broken_connections(struct dcesrv_context *dce_ctx) - cur = next; - next = cur->next; - -+ if (cur->state_flags & DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL) { -+ struct dcesrv_connection_context *context_cur, *context_next; -+ -+ context_next = cur->contexts; -+ while (context_next != NULL) { -+ context_cur = context_next; -+ context_next = context_cur->next; -+ -+ dcesrv_connection_context_destructor(context_cur); -+ } -+ } -+ - dcesrv_terminate_connection(cur, cur->terminate); - } - } -diff --git a/source4/rpc_server/dcerpc_server.h b/source4/rpc_server/dcerpc_server.h -index 2346876..8786cd8 100644 ---- a/source4/rpc_server/dcerpc_server.h -+++ b/source4/rpc_server/dcerpc_server.h -@@ -102,6 +102,7 @@ struct dcesrv_call_state { - #define DCESRV_CALL_STATE_FLAG_ASYNC (1<<0) - #define DCESRV_CALL_STATE_FLAG_MAY_ASYNC (1<<1) - #define DCESRV_CALL_STATE_FLAG_MULTIPLEXED (1<<3) -+#define DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL (1<<4) - uint32_t state_flags; - - /* the time the request arrived in the server */ --- -1.9.1 - diff --git a/samba-refactor-dcesrv_alter-function.patch b/samba-refactor-dcesrv_alter-function.patch deleted file mode 100644 index 8f02c76..0000000 --- a/samba-refactor-dcesrv_alter-function.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 4b942ee95cc351e4b123f57197ef19c79ae2b0aa Mon Sep 17 00:00:00 2001 -From: Jeremy Allison -Date: Fri, 24 Apr 2015 13:19:30 -0700 -Subject: [PATCH] s4: rpc: Refactor dcesrv_alter() function into setup and send - steps. - -Fixes bug: - -https://bugzilla.samba.org/show_bug.cgi?id=11236 - -Based on code from Julien Kerihuel - -Signed-off-by: Jeremy Allison -Reviewed-by: Andreas Schneider - -Autobuild-User(master): Jeremy Allison -Autobuild-Date(master): Sat Apr 25 02:43:22 CEST 2015 on sn-devel-104 - -(cherry picked from commit 49030649db3dfec5a9bc03e5dde4255a14499f16) ---- - source4/rpc_server/dcerpc_server.c | 114 ++++++++++++++++++++----------------- - 1 file changed, 62 insertions(+), 52 deletions(-) - -diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c -index f25aa68..b1c763b 100644 ---- a/source4/rpc_server/dcerpc_server.c -+++ b/source4/rpc_server/dcerpc_server.c -@@ -793,66 +793,31 @@ static NTSTATUS dcesrv_alter_new_context(struct dcesrv_call_state *call, uint32_ - return NT_STATUS_OK; - } - -- --/* -- handle a alter context request --*/ --static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) -+/* setup and send an alter_resp */ -+static NTSTATUS dcesrv_alter_resp(struct dcesrv_call_state *call, -+ uint32_t result, -+ uint32_t reason) - { - struct ncacn_packet pkt; -- struct data_blob_list_item *rep; -- NTSTATUS status; -- uint32_t result=0, reason=0; -- uint32_t context_id; - uint32_t extra_flags = 0; -+ struct data_blob_list_item *rep = NULL; -+ NTSTATUS status; - -- /* handle any authentication that is being requested */ -- if (!dcesrv_auth_alter(call)) { -- /* TODO: work out the right reject code */ -- result = DCERPC_BIND_PROVIDER_REJECT; -- reason = DCERPC_BIND_REASON_ASYNTAX; -- } -- -- context_id = call->pkt.u.alter.ctx_list[0].context_id; -- -- /* see if they are asking for a new interface */ -- if (result == 0) { -- call->context = dcesrv_find_context(call->conn, context_id); -- if (!call->context) { -- status = dcesrv_alter_new_context(call, context_id); -- if (!NT_STATUS_IS_OK(status)) { -- result = DCERPC_BIND_PROVIDER_REJECT; -- reason = DCERPC_BIND_REASON_ASYNTAX; -- } -- } -- } -- -- if (result == 0 && -- call->pkt.u.alter.assoc_group_id != 0 && -- lpcfg_parm_bool(call->conn->dce_ctx->lp_ctx, NULL, "dcesrv","assoc group checking", true) && -- call->pkt.u.alter.assoc_group_id != call->context->assoc_group->id) { -- DEBUG(0,(__location__ ": Failed attempt to use new assoc_group in alter context (0x%08x 0x%08x)\n", -- call->context->assoc_group->id, call->pkt.u.alter.assoc_group_id)); -- /* TODO: can they ask for a new association group? */ -- result = DCERPC_BIND_PROVIDER_REJECT; -- reason = DCERPC_BIND_REASON_ASYNTAX; -- } -- -- if ((call->pkt.pfc_flags & DCERPC_PFC_FLAG_CONC_MPX)) { -- if (call->context->conn->state_flags & DCESRV_CALL_STATE_FLAG_MULTIPLEXED) { -- extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; -- } -- } -- -- if (call->state_flags & DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL) { -- call->context->conn->state_flags |= DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL; -- } -- -- /* setup a alter_resp */ - dcesrv_init_hdr(&pkt, lpcfg_rpc_big_endian(call->conn->dce_ctx->lp_ctx)); - pkt.auth_length = 0; - pkt.call_id = call->pkt.call_id; - pkt.ptype = DCERPC_PKT_ALTER_RESP; -+ if (result == 0) { -+ if ((call->pkt.pfc_flags & DCERPC_PFC_FLAG_CONC_MPX) && -+ call->context->conn->state_flags & -+ DCESRV_CALL_STATE_FLAG_MULTIPLEXED) { -+ extra_flags |= DCERPC_PFC_FLAG_CONC_MPX; -+ } -+ if (call->state_flags & DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL) { -+ call->context->conn->state_flags |= -+ DCESRV_CALL_STATE_FLAG_PROCESS_PENDING_CALL; -+ } -+ } - pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST | extra_flags; - pkt.u.alter_resp.max_xmit_frag = 0x2000; - pkt.u.alter_resp.max_recv_frag = 0x2000; -@@ -908,6 +873,51 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) - } - - /* -+ handle a alter context request -+*/ -+static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call) -+{ -+ NTSTATUS status; -+ uint32_t context_id; -+ -+ /* handle any authentication that is being requested */ -+ if (!dcesrv_auth_alter(call)) { -+ /* TODO: work out the right reject code */ -+ return dcesrv_alter_resp(call, -+ DCERPC_BIND_PROVIDER_REJECT, -+ DCERPC_BIND_REASON_ASYNTAX); -+ } -+ -+ context_id = call->pkt.u.alter.ctx_list[0].context_id; -+ -+ /* see if they are asking for a new interface */ -+ call->context = dcesrv_find_context(call->conn, context_id); -+ if (!call->context) { -+ status = dcesrv_alter_new_context(call, context_id); -+ if (!NT_STATUS_IS_OK(status)) { -+ return dcesrv_alter_resp(call, -+ DCERPC_BIND_PROVIDER_REJECT, -+ DCERPC_BIND_REASON_ASYNTAX); -+ } -+ } -+ -+ if (call->pkt.u.alter.assoc_group_id != 0 && -+ lpcfg_parm_bool(call->conn->dce_ctx->lp_ctx, NULL, "dcesrv","assoc group checking", true) && -+ call->pkt.u.alter.assoc_group_id != call->context->assoc_group->id) { -+ DEBUG(0,(__location__ ": Failed attempt to use new assoc_group in alter context (0x%08x 0x%08x)\n", -+ call->context->assoc_group->id, call->pkt.u.alter.assoc_group_id)); -+ /* TODO: can they ask for a new association group? */ -+ return dcesrv_alter_resp(call, -+ DCERPC_BIND_PROVIDER_REJECT, -+ DCERPC_BIND_REASON_ASYNTAX); -+ } -+ -+ return dcesrv_alter_resp(call, -+ DCERPC_BIND_ACK_RESULT_ACCEPTANCE, -+ DCERPC_BIND_ACK_REASON_NOT_SPECIFIED); -+} -+ -+/* - possibly save the call for inspection with ndrdump - */ - static void dcesrv_save_call(struct dcesrv_call_state *call, const char *why) --- -2.2.0.rc0.207.ga3a616c - diff --git a/samba.spec b/samba.spec index 13aca44..e7cebf7 100644 --- a/samba.spec +++ b/samba.spec @@ -8,11 +8,11 @@ %bcond_without system_libs # system libraries (talloc,tdb,tevent,ldb,ntdb) %if %{with system_libs} -%define talloc_ver 2:2.1.2 -%define tdb_ver 2:1.2.12 %define ldb_ver 1.1.20 +%define ntdb_ver 1.0 +%define talloc_ver 2:2.1.2 +%define tdb_ver 2:1.3.4 %define tevent_ver 0.9.24 -%define ntdb_ver 0.9 %endif %include /usr/lib/rpm/macros.perl @@ -22,13 +22,13 @@ Summary: Samba Active Directory and SMB server Summary(pl.UTF-8): Serwer Samba Active Directory i SMB Name: samba -Version: 4.2.1 -Release: 0.2 +Version: 4.2.2 +Release: 0.1 Epoch: 1 License: GPL v3 Group: Networking/Daemons Source0: https://www.samba.org/ftp/samba/samba-%{version}.tar.gz -# Source0-md5: 614b4c7b9bbc70cff4cb56956f565741 +# Source0-md5: 77f138cc0736549b03872279364766e0 Source1: smb.init Source2: samba.pamd Source4: samba.sysconfig @@ -48,9 +48,6 @@ Patch5: %{name}-heimdal.patch Patch6: server-role.patch Patch7: %{name}-bug-9816.patch Patch8: %{name}-lib-tls-fix-build-with-gnutls-3.4.patch -Patch9: %{name}-dcerpc-multiplexed.patch -Patch10: %{name}-dcerpc-pending-call.patch -Patch11: %{name}-refactor-dcesrv_alter-function.patch URL: http://www.samba.org/ BuildRequires: acl-devel %{?with_avahi:BuildRequires: avahi-devel} @@ -66,11 +63,12 @@ BuildRequires: gamin-devel BuildRequires: gdbm-devel BuildRequires: gettext-tools BuildRequires: glusterfs-devel -BuildRequires: gnutls-devel >= 1.4.0 +BuildRequires: gnutls-devel >= 3.0.0 BuildRequires: heimdal-devel >= 1.5.3-1 BuildRequires: iconv BuildRequires: keyutils-devel BuildRequires: libaio-devel +BuildRequires: libarchive-devel >= 3.1.2 BuildRequires: libcap-devel BuildRequires: libcom_err-devel BuildRequires: libmagic-devel @@ -78,7 +76,7 @@ BuildRequires: libnscd-devel BuildRequires: make >= 3.81 BuildRequires: ncurses-devel >= 5.2 BuildRequires: ncurses-ext-devel >= 5.2 -BuildRequires: nss_wrapper +BuildRequires: nss_wrapper >= 1.0.2 %{?with_ldap:BuildRequires: openldap-devel >= 2.3.0} BuildRequires: pam-devel >= 0.99.8.1 BuildRequires: perl-ExtUtils-MakeMaker @@ -358,7 +356,7 @@ używanym w sieciach MS Windows. Summary: Samba shared libraries Summary(pl.UTF-8): Biblioteki współdzielone Samby Group: Libraries -Requires: gnutls >= 1.4.0 +Requires: gnutls >= 3.0.0 %if %{with system_libs} Requires: ldb >= %{ldb_ver} Requires: ntdb >= %{ntdb_ver} @@ -513,9 +511,6 @@ Ten pakiet zawiera schemat Samby (samba.schema) dla OpenLDAP-a. %patch6 -p1 %patch7 -p1 %patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 %{__sed} -i -e 's|#!/usr/bin/env python|#!/usr/bin/python|' source4/scripting/bin/samba* %{__sed} -i -e 's|#!/usr/bin/env perl|#!/usr/bin/perl|' pidl/pidl