diff options
-rw-r--r-- | source3/smbd/server.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 22b6a7a134..aa3da1f743 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -988,6 +988,7 @@ extern void build_options(bool screen); struct tevent_context *ev_ctx; struct messaging_context *msg_ctx; struct tevent_signal *se; + char *np_dir = NULL; /* * Do this before any other talloc operation @@ -1351,6 +1352,18 @@ extern void build_options(bool screen); return -1; } + np_dir = talloc_asprintf(talloc_tos(), "%s/np", lp_ncalrpc_dir()); + if (!np_dir) { + DEBUG(0, ("%s: Out of memory\n", __location__)); + return -1; + } + + if (!directory_create_or_exist(np_dir, geteuid(), 0700)) { + DEBUG(0, ("Failed to create pipe directory %s - %s\n", + np_dir, strerror(errno))); + return -1; + } + if (is_daemon && !interactive) { if (rpc_epmapper_daemon() == RPC_DAEMON_FORK) { start_epmd(ev_ctx, msg_ctx); |