mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
1414f1647d
This fixes the following security problems: * CVE-2015-7560 * CVE-2015-5370 * CVE-2016-2110 * CVE-2016-2111 * CVE-2016-2112 * CVE-2016-2115 * CVE-2016-2118 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 49175
89 lines
2.2 KiB
Diff
89 lines
2.2 KiB
Diff
--- a/source3/librpc/rpc/rpc_common.c
|
|
+++ b/source3/librpc/rpc/rpc_common.c
|
|
@@ -92,9 +92,11 @@ bool smb_register_ndr_interface(const st
|
|
|
|
static bool initialize_interfaces(void)
|
|
{
|
|
+#ifdef LSA_SUPPORT
|
|
if (!smb_register_ndr_interface(&ndr_table_lsarpc)) {
|
|
return false;
|
|
}
|
|
+#endif
|
|
#ifdef ACTIVE_DIRECTORY
|
|
if (!smb_register_ndr_interface(&ndr_table_dssetup)) {
|
|
return false;
|
|
--- a/source3/smbd/server_exit.c
|
|
+++ b/source3/smbd/server_exit.c
|
|
@@ -162,7 +162,9 @@ static void exit_server_common(enum serv
|
|
#ifdef SAMR_SUPPORT
|
|
rpc_samr_shutdown();
|
|
#endif
|
|
+#ifdef LSA_SUPPORT
|
|
rpc_lsarpc_shutdown();
|
|
+#endif
|
|
}
|
|
|
|
/*
|
|
--- a/source3/rpc_server/rpc_ep_setup.c
|
|
+++ b/source3/rpc_server/rpc_ep_setup.c
|
|
@@ -508,6 +508,7 @@ static bool srvsvc_init_cb(void *ptr)
|
|
return true;
|
|
}
|
|
|
|
+#ifdef LSA_SUPPORT
|
|
static bool lsarpc_init_cb(void *ptr)
|
|
{
|
|
struct dcesrv_ep_context *ep_ctx =
|
|
@@ -556,6 +557,7 @@ static bool lsarpc_init_cb(void *ptr)
|
|
|
|
return true;
|
|
}
|
|
+#endif
|
|
|
|
#ifdef SAMR_SUPPORT
|
|
static bool samr_init_cb(void *ptr)
|
|
@@ -1106,12 +1108,14 @@ bool dcesrv_ep_setup(struct tevent_conte
|
|
}
|
|
|
|
|
|
+#ifdef LSA_SUPPORT
|
|
lsarpc_cb.init = lsarpc_init_cb;
|
|
lsarpc_cb.shutdown = NULL;
|
|
lsarpc_cb.private_data = ep_ctx;
|
|
if (!NT_STATUS_IS_OK(rpc_lsarpc_init(&lsarpc_cb))) {
|
|
return false;
|
|
}
|
|
+#endif
|
|
|
|
#ifdef SAMR_SUPPORT
|
|
samr_cb.init = samr_init_cb;
|
|
--- a/source3/rpc_server/rpc_handles.c
|
|
+++ b/source3/rpc_server/rpc_handles.c
|
|
@@ -63,7 +63,10 @@ static bool is_samr_lsa_pipe(const struc
|
|
#ifdef SAMR_SUPPORT
|
|
ndr_syntax_id_equal(syntax, &ndr_table_samr.syntax_id) ||
|
|
#endif
|
|
- ndr_syntax_id_equal(syntax, &ndr_table_lsarpc.syntax_id);
|
|
+#ifdef LSA_SUPPORT
|
|
+ ndr_syntax_id_equal(syntax, &ndr_table_lsarpc.syntax_id) ||
|
|
+#endif
|
|
+ false;
|
|
}
|
|
|
|
size_t num_pipe_handles(struct pipes_struct *p)
|
|
--- a/source3/rpc_server/srv_pipe.c
|
|
+++ b/source3/rpc_server/srv_pipe.c
|
|
@@ -419,10 +419,12 @@ static bool check_bind_req(struct pipes_
|
|
context_fns->allow_connect = false;
|
|
}
|
|
#endif
|
|
+#ifdef LSA_SUPPORT
|
|
ok = ndr_syntax_id_equal(abstract, &ndr_table_lsarpc.syntax_id);
|
|
if (ok) {
|
|
context_fns->allow_connect = false;
|
|
}
|
|
+#endif
|
|
#ifdef NETLOGON_SUPPORT
|
|
ok = ndr_syntax_id_equal(abstract, &ndr_table_netlogon.syntax_id);
|
|
if (ok) {
|