}
/* Alloc group list of the right size */
- grp_list = malloc(grp_list_size * sizeof(gid_t));
+ grp_list = zmalloc(grp_list_size * sizeof(gid_t));
if (!grp_list) {
perror("malloc");
goto end;
goto end;
}
- data = (void*) malloc(size);
+ data = zmalloc(size);
+ if (!data) {
+ ret = -ENOMEM;
+ goto end;
+ }
/* Get payload data */
ret = recv_data_sessiond(data, size);
goto end;
}
- handle = malloc(sizeof(struct lttng_handle));
+ handle = zmalloc(sizeof(struct lttng_handle));
if (handle == NULL) {
PERROR("malloc handle");
goto end;
/* Don't add filter for the '*' event. */
if (ev->name[0] != '*') {
if (filter) {
- err = asprintf(&jul_filter, "%s && logger_name == \"%s\"", filter,
+ err = asprintf(&jul_filter, "(%s) && (logger_name == \"%s\")", filter,
ev->name);
} else {
err = asprintf(&jul_filter, "logger_name == \"%s\"", ev->name);
}
if (err < 0) {
PERROR("asprintf");
- goto end;
+ goto error;
}
}
op = "==";
}
- if (filter) {
- err = asprintf(&jul_filter, "%s && int_loglevel %s %d", filter, op,
+ if (filter || jul_filter) {
+ char *new_filter;
+
+ err = asprintf(&new_filter, "(%s) && (int_loglevel %s %d)",
+ jul_filter ? jul_filter : filter, op,
ev->loglevel);
+ if (jul_filter) {
+ free(jul_filter);
+ }
+ jul_filter = new_filter;
} else {
err = asprintf(&jul_filter, "int_loglevel %s %d", op,
ev->loglevel);
}
if (err < 0) {
PERROR("asprintf");
- free(jul_filter);
- jul_filter = NULL;
- goto end;
+ goto error;
}
}
-end:
return jul_filter;
+error:
+ free(jul_filter);
+ return NULL;
}
/*
lttng_ctl_copy_lttng_domain(&lsm.domain, &handle->domain);
- if (name != NULL) {
+ if (name != NULL && *name != '*') {
lttng_ctl_copy_string(lsm.u.disable.name, name,
sizeof(lsm.u.disable.name));
lsm.cmd_type = LTTNG_DISABLE_EVENT;