Fix: lttng: sanity check of `--probe` description
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Fri, 17 Jan 2020 20:09:21 +0000 (15:09 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 5 Feb 2020 20:57:08 +0000 (15:57 -0500)
commit6b31b237dd74f80d9bda26bb2bd8219c1ddd972d
tree017a05bde7c914ff6e5356a9e72558d70a2deecc
parent2146bf8dd7ecec9258590402b15359f5183001c2
Fix: lttng: sanity check of `--probe` description

Issue
=====
Run the following command:
  lttng enable-event -k --probe "\do_fork" my_do_fork_event
currently fails and that is expected.

But it does not fail for the right reason. In the `parse_probe_opts()`
function, during the last step of parsing the probe description we assume
it's a raw address and pass the string directly to the `strtoul()`
function. So if the probe description is not an address at all (e.g.
"\do_fork"), the `strtoul()` call will return 0 in the `addr` field of
the probe struct. This is then passed to the kernel tracer that asks the
kernel to instrument that address with a kprobe. This fails because 0x0
is not an address that can be instrumented.

Solution
========
Check that the first character of the tentative address is a digit
before trying to convert the string to an integer. This is not perfect
but at least it prevents some errors.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Change-Id: I444f0e7694098b1cdb56ecbf5d92be8974e406dc
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng/commands/enable_events.c
This page took 0.02702 seconds and 4 git commands to generate.