messaging: Call messaging_dgm_send under become_root only if necessary
[metze/samba/wip.git] / source4 / lib / messaging / messaging.c
index 0f3891ea2e0773ea3f3d7d3c251092e1c287d195..ea50627c2bd286c7397c9c2383c2c53adb9ba87d 100644 (file)
@@ -255,9 +255,14 @@ NTSTATUS imessaging_send(struct imessaging_context *msg, struct server_id server
                pid = getpid();
        }
 
-       priv = root_privileges();
        ret = messaging_dgm_send(pid, iov, num_iov, NULL, 0);
-       TALLOC_FREE(priv);
+
+       if (ret == EACCES) {
+               priv = root_privileges();
+               ret = messaging_dgm_send(pid, iov, num_iov, NULL, 0);
+               TALLOC_FREE(priv);
+       }
+
        if (ret != 0) {
                return map_nt_error_from_unix_common(ret);
        }