s4:rpc_server: Check mkdir() return value (CID 1034649)
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Thu, 5 Oct 2023 22:10:25 +0000 (11:10 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 13 Oct 2023 02:18:31 +0000 (02:18 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/rpc_server/service_rpc.c

index 72a00e865e03cc461cb300ee418188b316b6dc67..e4f72a129cffa6bfa147f3e8b05a9f3fc1f540ea 100644 (file)
@@ -160,7 +160,12 @@ static NTSTATUS dcesrv_task_init(struct task_server *task)
 
        /* Make sure the directory for NCALRPC exists */
        if (!directory_exist(lpcfg_ncalrpc_dir(task->lp_ctx))) {
-               mkdir(lpcfg_ncalrpc_dir(task->lp_ctx), 0755);
+               int ret;
+
+               ret = mkdir(lpcfg_ncalrpc_dir(task->lp_ctx), 0755);
+               if (ret == -1 && errno != EEXIST) {
+                       return map_nt_error_from_unix_common(errno);
+               }
        }
        status = dcesrv_init_endpoints(task, dce_ctx, false);
        if (!NT_STATUS_IS_OK(status)) {