s3/notifyd: ensure notifyd doesn't return from smbd_notifyd_init
authorRalph Boehme <slow@samba.org>
Fri, 14 Jul 2017 14:38:36 +0000 (16:38 +0200)
committerJeremy Allison <jra@samba.org>
Sat, 15 Jul 2017 00:16:18 +0000 (02:16 +0200)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=12910

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/server.c

index e18a4e55260cc730f328a0b21f2d39aaab2f4132..181bcd1e1237f8cecfcd622812481c57134e5e7e 100644 (file)
@@ -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);