X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fenable_events.c;h=f6bae4874266863e3de6c20350565ad1dc4e0523;hb=875b29bfdafecb38a552264b0775478eaef0cae1;hp=f11436e165759591a0c9ac846e1e3e37f8d87e16;hpb=bfe363931d42c68767ebb096f5958b3b1dfde3bb;p=lttng-tools.git diff --git a/src/bin/lttng/commands/enable_events.c b/src/bin/lttng/commands/enable_events.c index f11436e16..f6bae4874 100644 --- a/src/bin/lttng/commands/enable_events.c +++ b/src/bin/lttng/commands/enable_events.c @@ -143,7 +143,7 @@ static int parse_probe_opts(struct lttng_event *ev, char *opt) } /* Check for symbol */ - if (isalpha(name[0])) { + if (isalpha(name[0]) || name[0] == '_') { match = sscanf(opt, "%" LTTNG_SYMBOL_NAME_LEN_SCANF_IS_A_BROKEN_API "s", name); if (match == 1) { @@ -160,8 +160,13 @@ static int parse_probe_opts(struct lttng_event *ev, char *opt) /* Check for address */ match = sscanf(opt, "%" S_HEX_LEN_SCANF_IS_A_BROKEN_API "s", s_hex); if (match > 0) { - if (*s_hex == '\0') { - ERR("Invalid probe address %s", s_hex); + /* + * Return an error if the first character of the tentative + * address is NULL or not a digit. It can be "0" if the address + * is in hexadecimal and can be 1 to 9 if it's in decimal. + */ + if (*s_hex == '\0' || !isdigit(*s_hex)) { + ERR("Invalid probe description %s", s_hex); ret = CMD_ERROR; goto end; } @@ -435,7 +440,7 @@ static int parse_userspace_probe_opts(struct lttng_event *ev, char *opt) lookup_method = lttng_userspace_probe_location_lookup_method_tracepoint_sdt_create(); if (!lookup_method) { - WARN("Failed to create ELF lookup method"); + WARN("Failed to create SDT lookup method"); ret = CMD_ERROR; goto end_string; } @@ -484,8 +489,8 @@ static int parse_userspace_probe_opts(struct lttng_event *ev, char *opt) } /* - * Check if the file exists using access(2). If it does not, walk the - * $PATH. + * Check if the file exists using access(2), If it does not, + * return an error. */ ret = access(real_target_path, F_OK); if (ret) {