[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Tue Apr 24 15:19:02 UTC 2018
The branch, master has been updated
via ffeb2ac winbind: Speed up wbinfo -p
via fdf0b2a nsswitch: Only connect to the priv socket if required
via 6120f56 ntlm_auth: PAM_AUTH_CRAP needs a privileged socket
via ffe9700 nsswitch: fix memory leak in winbind_open_pipe_sock() when the privileged pipe is not accessable.
from 8e5cc97 s3:messages: improve tevent_create_immediate recycling
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit ffeb2acf65ef0b669f57b3f6f047db03b2f1a6c6
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 18 17:29:51 2018 +0200
winbind: Speed up wbinfo -p
This was (possibly) used as an example in the early days of the async winbind
code we have today. It's not necessary to send this through a full tevent_req
round.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Tue Apr 24 17:18:23 CEST 2018 on sn-devel-144
commit fdf0b2a784f83f9fcaa204be7f28f9e7fc47836b
Author: Volker Lendecke <vl at samba.org>
Date: Mon Apr 23 12:13:40 2018 +0200
nsswitch: Only connect to the priv socket if required
This should speed up calls like "wbinfo -p"
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 6120f568017544425071c9ad817faa236fd27058
Author: Volker Lendecke <vl at samba.org>
Date: Mon Apr 23 14:04:48 2018 +0200
ntlm_auth: PAM_AUTH_CRAP needs a privileged socket
This only works right now because wb_common always tries privileged
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit ffe970007bf934955f72ec2d73bf8f94a2b796eb
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Apr 24 10:59:05 2018 +0200
nsswitch: fix memory leak in winbind_open_pipe_sock() when the privileged pipe is not accessable.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13400
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Volker Lendecke <vl at samba.org>
-----------------------------------------------------------------------
Summary of changes:
nsswitch/wb_common.c | 10 ++++++---
source3/utils/ntlm_auth.c | 6 ++++-
source3/winbindd/wb_ping.c | 46 ---------------------------------------
source3/winbindd/winbindd.c | 3 +--
source3/winbindd/winbindd_misc.c | 6 +++++
source3/winbindd/winbindd_proto.h | 6 -----
source3/winbindd/wscript_build | 1 -
7 files changed, 19 insertions(+), 59 deletions(-)
delete mode 100644 source3/winbindd/wb_ping.c
Changeset truncated at 500 lines:
diff --git a/nsswitch/wb_common.c b/nsswitch/wb_common.c
index d6746b4..6768fde 100644
--- a/nsswitch/wb_common.c
+++ b/nsswitch/wb_common.c
@@ -401,6 +401,10 @@ static int winbind_open_pipe_sock(struct winbindd_context *ctx,
return -1;
}
+ if (need_priv == 0) {
+ return ctx->winbindd_fd;
+ }
+
/* try and get priv pipe */
request.wb_flags = WBFLAG_RECURSE;
@@ -420,14 +424,14 @@ static int winbind_open_pipe_sock(struct winbindd_context *ctx,
ctx->winbindd_fd = fd;
ctx->is_privileged = 1;
}
+
+ SAFE_FREE(response.extra_data.data);
}
- if ((need_priv != 0) && (ctx->is_privileged == 0)) {
+ if (ctx->is_privileged == 0) {
return -1;
}
- SAFE_FREE(response.extra_data.data);
-
return ctx->winbindd_fd;
#else
return -1;
diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c
index 2c8d991..d3146cc 100644
--- a/source3/utils/ntlm_auth.c
+++ b/source3/utils/ntlm_auth.c
@@ -593,7 +593,11 @@ NTSTATUS contact_winbind_auth_crap(const char *username,
request.data.auth_crap.nt_resp_len = nt_response->length;
}
- result = winbindd_request_response(NULL, WINBINDD_PAM_AUTH_CRAP, &request, &response);
+ result = winbindd_priv_request_response(
+ NULL,
+ WINBINDD_PAM_AUTH_CRAP,
+ &request,
+ &response);
SAFE_FREE(request.extra_data.data);
/* Display response */
diff --git a/source3/winbindd/wb_ping.c b/source3/winbindd/wb_ping.c
deleted file mode 100644
index bfba3c1..0000000
--- a/source3/winbindd/wb_ping.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- Unix SMB/CIFS implementation.
- async implementation of WINBINDD_PING
- Copyright (C) Volker Lendecke 2009
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "winbindd.h"
-
-struct wb_ping_state {
- uint8_t dummy;
-};
-
-struct tevent_req *wb_ping_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct winbindd_cli_state *cli,
- struct winbindd_request *request)
-{
- struct tevent_req *req;
- struct wb_ping_state *state;
-
- req = tevent_req_create(mem_ctx, &state, struct wb_ping_state);
- if (req == NULL) {
- return NULL;
- }
- tevent_req_done(req);
- tevent_req_post(req, ev);
- return req;
-}
-
-NTSTATUS wb_ping_recv(struct tevent_req *req, struct winbindd_response *presp)
-{
- return NT_STATUS_OK;
-}
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index b908d91..76d644b 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -535,6 +535,7 @@ static struct winbindd_dispatch_table {
/* Miscellaneous */
{ WINBINDD_INFO, winbindd_info, "INFO" },
+ { WINBINDD_PING, winbindd_ping, "PING" },
{ WINBINDD_INTERFACE_VERSION, winbindd_interface_version,
"INTERFACE_VERSION" },
{ WINBINDD_DOMAIN_NAME, winbindd_domain_name, "DOMAIN_NAME" },
@@ -565,8 +566,6 @@ struct winbindd_async_dispatch_table {
};
static struct winbindd_async_dispatch_table async_nonpriv_table[] = {
- { WINBINDD_PING, "PING",
- wb_ping_send, wb_ping_recv },
{ WINBINDD_LOOKUPSID, "LOOKUPSID",
winbindd_lookupsid_send, winbindd_lookupsid_recv },
{ WINBINDD_LOOKUPSIDS, "LOOKUPSIDS",
diff --git a/source3/winbindd/winbindd_misc.c b/source3/winbindd/winbindd_misc.c
index 964190e..c101269 100644
--- a/source3/winbindd/winbindd_misc.c
+++ b/source3/winbindd/winbindd_misc.c
@@ -502,6 +502,12 @@ void winbindd_dc_info(struct winbindd_cli_state *cli)
request_ok(cli);
}
+void winbindd_ping(struct winbindd_cli_state *state)
+{
+ DEBUG(3, ("[%5lu]: ping\n", (unsigned long)state->pid));
+ request_ok(state);
+}
+
/* List various tidbits of information */
void winbindd_info(struct winbindd_cli_state *state)
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
index 6a63b15..bbc6841 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -529,12 +529,6 @@ bool parse_xidlist(TALLOC_CTX *mem_ctx, const char *xidstr,
void winbindd_wins_byname(struct winbindd_cli_state *state);
-struct tevent_req *wb_ping_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct winbindd_cli_state *cli,
- struct winbindd_request *request);
-NTSTATUS wb_ping_recv(struct tevent_req *req,
- struct winbindd_response *resp);
-
enum winbindd_result winbindd_dual_ping(struct winbindd_domain *domain,
struct winbindd_cli_state *state);
diff --git a/source3/winbindd/wscript_build b/source3/winbindd/wscript_build
index 48250ea..0adbe9c 100644
--- a/source3/winbindd/wscript_build
+++ b/source3/winbindd/wscript_build
@@ -198,7 +198,6 @@ bld.SAMBA3_BINARY('winbindd',
winbindd_idmap.c
winbindd_locator.c
winbindd_ndr.c
- wb_ping.c
wb_lookupsid.c
wb_lookupsids.c
wb_lookupname.c
--
Samba Shared Repository
More information about the samba-cvs
mailing list