X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Fconfig%2Fconfig.c;h=ece7cdb2a0e161339f661cfa1bd8b6cb37fc7138;hb=e8fa9fb0539ec3d734f6d0ab91220b4538b2ea30;hp=971946c50bd93fbd8f9ef2ea9b2960c4b852d448;hpb=135a38931165e81ce5a021a92f9e57ab8658c301;p=lttng-tools.git diff --git a/src/common/config/config.c b/src/common/config/config.c index 971946c50..ece7cdb2a 100644 --- a/src/common/config/config.c +++ b/src/common/config/config.c @@ -16,6 +16,7 @@ */ #define _GNU_SOURCE +#define _LGPL_SOURCE #include #include #include @@ -31,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -594,7 +596,7 @@ static char *get_session_config_xsd_path() { char *xsd_path; - const char *base_path = getenv(DEFAULT_SESSION_CONFIG_XSD_PATH_ENV); + const char *base_path = lttng_secure_getenv(DEFAULT_SESSION_CONFIG_XSD_PATH_ENV); size_t base_path_len; size_t max_path_len; @@ -1283,7 +1285,7 @@ int create_session(const char *name, int i; struct lttng_domain *domain; struct lttng_domain *domains[] = - { kernel_domain, ust_domain, jul_domain, log4j_domain}; + { kernel_domain, ust_domain, jul_domain, log4j_domain }; /* network destination */ if (live_timer_interval && live_timer_interval != UINT64_MAX) { @@ -1639,6 +1641,24 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, ret = lttng_enable_event_with_exclusions(handle, &event, channel_name, filter_expression, exclusion_count, exclusions); + if (ret) { + goto end; + } + + if (!event.enabled) { + /* + * Note that we should use lttng_disable_event_ext() (2.6+) to + * eliminate the risk of clashing on events of the same + * name (with different event types and loglevels). + * + * Unfortunately, lttng_disable_event_ext() only performs a + * match on the name and event type and errors out if any other + * event attribute is not set to its default value. + * + * This will disable all events that match this name. + */ + ret = lttng_disable_event(handle, event.name, channel_name); + } end: for (i = 0; i < exclusion_count; i++) { free(exclusions[i]);