X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fcommon%2Ftrigger.c;h=9dfd74d913c7e06ad0c6343c30ec4bad8555697e;hb=670a26e4165562ab2dc5a16b9941f942e4f30996;hp=ec96fc80b7d804249c8c4f1f395d4a693080fd1e;hpb=9c374932629a1c25927dad13fce02ba1c4892cf7;p=lttng-tools.git diff --git a/src/common/trigger.c b/src/common/trigger.c index ec96fc80b..9dfd74d91 100644 --- a/src/common/trigger.c +++ b/src/common/trigger.c @@ -16,8 +16,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -704,6 +704,7 @@ enum lttng_trigger_status lttng_trigger_set_owner_uid( 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, @@ -715,7 +716,7 @@ enum lttng_trigger_status lttng_trigger_set_owner_uid( } /* 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; }