#include <lttng/action/action-internal.h>
#include <lttng/condition/buffer-usage.h>
#include <lttng/condition/condition-internal.h>
-#include <lttng/condition/on-event-internal.h>
-#include <lttng/condition/on-event.h>
+#include <lttng/condition/event-rule-matches-internal.h>
+#include <lttng/condition/event-rule-matches.h>
#include <lttng/domain.h>
#include <lttng/event-expr-internal.h>
#include <lttng/event-rule/event-rule-internal.h>
struct lttng_trigger *trigger, uid_t uid)
{
enum lttng_trigger_status ret = LTTNG_TRIGGER_STATUS_OK;
+ const uid_t euid = geteuid();
const struct lttng_credentials creds = {
.uid = LTTNG_OPTIONAL_INIT_VALUE(uid),
.gid = LTTNG_OPTIONAL_INIT_UNSET,
}
/* Client-side validation only to report a clearer error. */
- if (geteuid() != 0) {
+ if (euid != 0 && euid != uid) {
ret = LTTNG_TRIGGER_STATUS_PERMISSION_DENIED;
goto end;
}