*/
int lttng_opt_quiet;
int lttng_opt_verbose;
+int lttng_opt_mi;
/*
* Copy string from src to dst and enforce null terminated byte.
}
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;
}
/*
return 0;
parse_error:
- filter_bytecode_free(ctx);
filter_ir_free(ctx);
filter_parser_ctx_free(ctx);
filter_alloc_error:
+ LTTNG_SYMBOL_NAME_LEN * exclusion_count);
if (!varlen_data) {
ret = -LTTNG_ERR_EXCLUSION_NOMEM;
- goto filter_error;
+ goto mem_error;
}
/* Put exclusion names first in the data */
lsm.u.enable.bytecode_len + lsm.u.enable.expression_len, NULL);
free(varlen_data);
-filter_error:
- if (filter_expression) {
+mem_error:
+ if (filter_expression && ctx) {
filter_bytecode_free(ctx);
filter_ir_free(ctx);
filter_parser_ctx_free(ctx);
- if (free_filter_expression) {
- /*
- * The filter expression has been replaced and must be
- * freed as it is not the original filter expression
- * received as a parameter.
- */
- free(filter_expression);
- }
+ }
+filter_error:
+ if (free_filter_expression) {
+ /*
+ * The filter expression has been replaced and must be freed as it is
+ * not the original filter expression received as a parameter.
+ */
+ free(filter_expression);
}
error:
/*