[PATCH] Ensure notifyd doesn't return from smbd_notifyd_init
Jeremy Allison
jra at samba.org
Fri Jul 14 21:03:20 UTC 2017
On Fri, Jul 14, 2017 at 04:41:31PM +0200, Ralph Böhme via samba-technical wrote:
> Hi all,
>
> recently diagnosed a strange issue where notifyd was executing parent smbd code.
> That happened because notifyd failed early in the init stage, causing a return
> from smbd_notifyd_init.
>
> Please review & push if ok. Thanks!
RB+. LGTM. Pushed.
> From 662aa2a2132963bafa95d5569ac61ea4ddc5581b Mon Sep 17 00:00:00 2001
> From: Ralph Boehme <slow at samba.org>
> Date: Fri, 14 Jul 2017 16:38:36 +0200
> Subject: [PATCH] s3/notifyd: ensure notifyd doesn't return from
> smbd_notifyd_init
>
> Bug: https://bugzilla.samba.org/show_bug.cgi?id=12910
>
> Signed-off-by: Ralph Boehme <slow at samba.org>
> ---
> source3/smbd/server.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/source3/smbd/server.c b/source3/smbd/server.c
> index e18a4e5..181bcd1 100644
> --- a/source3/smbd/server.c
> +++ b/source3/smbd/server.c
> @@ -390,6 +390,7 @@ static bool smbd_notifyd_init(struct messaging_context *msg, bool interactive,
> struct tevent_req *req;
> pid_t pid;
> NTSTATUS status;
> + bool ok;
>
> if (interactive) {
> req = notifyd_req(msg, ev);
> @@ -431,7 +432,12 @@ static bool smbd_notifyd_init(struct messaging_context *msg, bool interactive,
> messaging_send(msg, pid_to_procid(getppid()), MSG_SMB_NOTIFY_STARTED,
> NULL);
>
> - return tevent_req_poll(req, ev);
> + ok = tevent_req_poll(req, ev);
> + if (!ok) {
> + DBG_WARNING("tevent_req_poll returned %s\n", strerror(errno));
> + exit(1);
> + }
> + exit(0);
> }
>
> static void notifyd_init_trigger(struct tevent_req *req);
> --
> 2.9.4
>
More information about the samba-technical
mailing list