key = _key;
/* It has to be a perfect match. */
- if (strncmp(event->name, key->name, sizeof(event->name)) != 0) {
+ if (strncmp(event->name, key->name, sizeof(event->name))) {
goto no_match;
}
/* It has to be a perfect match. */
if (strncmp(event->signature, key->signature,
- strlen(event->signature) != 0)) {
+ strlen(event->signature))) {
goto no_match;
}
*/
static struct ust_registry_event *alloc_event(int session_objd,
int channel_objd, char *name, char *sig, size_t nr_fields,
- struct ustctl_field *fields, int loglevel, char *model_emf_uri,
- struct ust_app *app)
+ struct ustctl_field *fields, int loglevel_value,
+ char *model_emf_uri, struct ust_app *app)
{
struct ust_registry_event *event = NULL;
event->signature = sig;
event->nr_fields = nr_fields;
event->fields = fields;
- event->loglevel = loglevel;
+ event->loglevel_value = loglevel_value;
event->model_emf_uri = model_emf_uri;
if (name) {
/* Copy event name and force NULL byte. */
*/
int ust_registry_create_event(struct ust_registry_session *session,
uint64_t chan_key, int session_objd, int channel_objd, char *name,
- char *sig, size_t nr_fields, struct ustctl_field *fields, int loglevel,
- char *model_emf_uri, int buffer_type, uint32_t *event_id_p,
- struct ust_app *app)
+ char *sig, size_t nr_fields, struct ustctl_field *fields,
+ int loglevel_value, char *model_emf_uri, int buffer_type,
+ uint32_t *event_id_p, struct ust_app *app)
{
int ret;
uint32_t event_id;
}
event = alloc_event(session_objd, channel_objd, name, sig, nr_fields,
- fields, loglevel, model_emf_uri, app);
+ fields, loglevel_value, model_emf_uri, app);
if (!event) {
ret = -ENOMEM;
goto error_free;
session->long_alignment = long_alignment;
session->byte_order = byte_order;
session->metadata_fd = -1;
+ session->uid = euid;
+ session->gid = egid;
strncpy(session->root_shm_path, root_shm_path,
sizeof(session->root_shm_path));
session->root_shm_path[sizeof(session->root_shm_path) - 1] = '\0';
}
if (session->metadata_path[0]) {
/* Create metadata file */
- ret = open(session->metadata_path,
+ ret = run_as_open(session->metadata_path,
O_WRONLY | O_CREAT | O_EXCL,
- S_IRUSR | S_IWUSR);
+ S_IRUSR | S_IWUSR, euid, egid);
if (ret < 0) {
PERROR("Opening metadata file");
goto error;
if (ret) {
PERROR("close");
}
- ret = unlink(reg->metadata_path);
+ ret = run_as_unlink(reg->metadata_path,
+ reg->uid, reg->gid);
if (ret) {
PERROR("unlink");
}
/*
* Try deleting the directory hierarchy.
*/
- (void) utils_recursive_rmdir(reg->root_shm_path);
+ (void) run_as_recursive_rmdir(reg->root_shm_path,
+ reg->uid, reg->gid);
}
}