umber-kernel/tools/tracing/rtla
Wander Lairson Costa 2727242973 rtla: Fix NULL pointer dereference in actions_parse
[ Upstream commit a0890f9dbd24b302d327fe7dad9b9c5be0e278aa ]

The actions_parse() function uses strtok() to tokenize the trigger
string, but does not check if the returned token is NULL before
passing it to strcmp(). If the trigger parameter is an empty string
or contains only delimiter characters, strtok() returns NULL, causing
strcmp() to dereference a NULL pointer and crash the program.

This issue can be triggered by malformed user input or edge cases in
trigger string parsing. Add a NULL check immediately after the strtok()
call to validate that a token was successfully extracted before using
it. If no token is found, the function now returns -1 to indicate a
parsing error.

Signed-off-by: Wander Lairson Costa <wander@redhat.com>
Link: https://lore.kernel.org/r/20260106133655.249887-13-wander@redhat.com
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-03-04 07:20:13 -05:00
..
sample
src rtla: Fix NULL pointer dereference in actions_parse 2026-03-04 07:20:13 -05:00
tests rtla/tests: Fix osnoise test calling timerlat 2025-12-18 14:03:10 +01:00
.gitignore
Build
Makefile
Makefile.config rtla: Check pkg-config install 2025-08-19 20:32:54 -04:00
Makefile.rtla tools/rtla: Fix unassigned nr_cpus 2025-12-18 14:03:07 +01:00
Makefile.standalone
README.txt

README.txt

RTLA: Real-Time Linux Analysis tools

The rtla meta-tool includes a set of commands that aims to analyze
the real-time properties of Linux. Instead of testing Linux as a black box,
rtla leverages kernel tracing capabilities to provide precise information
about the properties and root causes of unexpected results.

Installing RTLA

RTLA depends on the following libraries and tools:

 - libtracefs
 - libtraceevent
 - libcpupower (optional, for --deepest-idle-state)

For BPF sample collection support, the following extra dependencies are
required:

 - libbpf 1.0.0 or later
 - bpftool with skeleton support
 - clang with BPF CO-RE support

It also depends on python3-docutils to compile man pages.

For development, we suggest the following steps for compiling rtla:

  $ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git
  $ cd libtraceevent/
  $ make
  $ sudo make install
  $ cd ..
  $ git clone git://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git
  $ cd libtracefs/
  $ make
  $ sudo make install
  $ cd ..
  $ cd $libcpupower_src
  $ make
  $ sudo make install
  $ cd $rtla_src
  $ make
  $ sudo make install

For further information, please refer to the rtla man page.