event-rule: Normalize pattern for syscall and tracepoint
[lttng-tools.git] / src / common / event-rule / syscall.c
index b1b556aba3aa6bf5b7dcc45b65d0e408a2a7f832..fbaa65310a6966548690bbb7db65c9c6ca91712b 100644 (file)
@@ -14,6 +14,7 @@
 #include <common/runas.h>
 #include <common/hashtable/hashtable.h>
 #include <common/hashtable/utils.h>
+#include <common/string-utils/string-utils.h>
 #include <lttng/event-rule/event-rule-internal.h>
 #include <lttng/event-rule/syscall-internal.h>
 
@@ -249,6 +250,7 @@ struct lttng_event_rule *lttng_event_rule_syscall_create(void)
 {
        struct lttng_event_rule *rule = NULL;
        struct lttng_event_rule_syscall *syscall_rule;
+       enum lttng_event_rule_status status;
 
        syscall_rule = zmalloc(sizeof(struct lttng_event_rule_syscall));
        if (!syscall_rule) {
@@ -271,6 +273,14 @@ struct lttng_event_rule *lttng_event_rule_syscall_create(void)
        syscall_rule->parent.generate_exclusions =
                        lttng_event_rule_syscall_generate_exclusions;
        syscall_rule->parent.hash = lttng_event_rule_syscall_hash;
+
+       /* Default pattern is '*'. */
+       status = lttng_event_rule_syscall_set_pattern(rule, "*");
+       if (status != LTTNG_EVENT_RULE_STATUS_OK) {
+               lttng_event_rule_destroy(rule);
+               rule = NULL;
+       }
+
 end:
        return rule;
 }
@@ -405,9 +415,9 @@ enum lttng_event_rule_status lttng_event_rule_syscall_set_pattern(
                goto end;
        }
 
-       if (syscall->pattern) {
-               free(syscall->pattern);
-       }
+       strutils_normalize_star_glob_pattern(pattern_copy);
+
+       free(syscall->pattern);
 
        syscall->pattern = pattern_copy;
        pattern_copy = NULL;
This page took 0.031858 seconds and 4 git commands to generate.