[PATCH] Ensure notifyd doesn't return from smbd_notifyd_init
Ralph Böhme
slow at samba.org
Fri Jul 14 14:41:31 UTC 2017
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!
Cheerio!
-slow
-------------- next part --------------
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