1
0
Fork 1
mirror of https://git.lttng.org/lttng-tools.git synced 2026-06-13 05:56:19 -04:00
No description
  • C++ 71%
  • Shell 9.5%
  • Python 8.9%
  • C 6.8%
  • M4 2.5%
  • Other 1.3%
Find a file
Jérémie Galarneau 8228a86025 Fix: relayd: NULL file handle dereference in GET_PACKET
OBSERVED ISSUE
━━━━━━━━━━━━━━
A live viewer that sends LTTNG_VIEWER_GET_PACKET for a stream whose
data file has not been opened yet (for instance before any
LTTNG_VIEWER_GET_NEXT_INDEX) would crash the relay daemon.

CAUSE
━━━━━
viewer_get_packet() seeks and reads through
vstream->stream_file.handle without checking that it is non-NULL.
fs_handle_seek() dereferences the handle unconditionally, so a stream
whose data file is not yet open leads to a NULL dereference.

SOLUTION
━━━━━━━━
Check that the stream's file handle is open before seeking, and reply
with an error status otherwise.

Change-Id: Ifbd6530e8275f1d165454cd0f0a5130aa51a4577
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
2026-06-12 15:59:13 +00:00
.vscode Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
doc doc/man: use "event record channel" terminology instead of "channel" 2026-04-29 20:54:43 +00:00
extras extras: pre-commit: accept Doxygen comments in include/ headers 2026-05-29 00:33:12 +00:00
include common: add "increment map value" trigger action 2026-05-29 00:33:12 +00:00
LICENSES Add SPDX copyright headers to data files 2026-03-05 19:27:18 +00:00
m4 Add SPDX copyright headers to m4 macros 2026-03-05 19:27:07 +00:00
src Fix: relayd: NULL file handle dereference in GET_PACKET 2026-06-12 15:59:13 +00:00
tests Fix: tests: stall-buffer timer relies on a packet-count artifact 2026-06-12 15:52:30 +00:00
version Add SPDX copyright headers to documentation files 2026-03-05 19:27:16 +00:00
.clang-format Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
.clang-format-ignore Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
.clang-tidy clang-tidy: drop readability-simplify-boolean-expr 2026-04-23 17:46:38 +00:00
.commit_template .commit_template: update style and info 2026-03-24 14:35:23 -04:00
.commit_template.license Add SPDX copyright headers to data files 2026-03-05 19:27:18 +00:00
.editorconfig Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
.git-blame-ignore-revs Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
.gitignore common: add opaque "key template" trigger action utility 2026-05-29 00:33:12 +00:00
.gitreview Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
.lcovrc Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
.shellcheckrc tests: utils.sh: Make shellcheck happy 2025-08-18 15:45:51 -04:00
.travis.yml Add SPDX copyright headers to support files 2026-03-05 19:27:09 +00:00
bootstrap Add SPDX copyright headers to all Makefiles 2026-03-05 19:26:57 +00:00
ChangeLog Add SPDX copyright headers to documentation files 2026-03-05 19:27:16 +00:00
CLAUDE.md CLAUDE.md: Update commit message template 2026-04-17 16:14:55 +00:00
CodingStyle.md Delete obsolete kernel-CodingStyle.txt 2026-03-05 19:27:27 +00:00
configure.ac misc: Bump minimum python3 version to 3.6 2026-05-29 00:36:10 +00:00
CONTRIBUTING.md Add SPDX copyright headers to documentation files 2026-03-05 19:27:16 +00:00
format-cpp Fix: format-cpp: all files excluded when ignore file contains blank lines 2026-03-06 16:58:41 +00:00
LICENSE Convert LICENSES to the REUSE standard 2026-03-05 19:26:49 +00:00
Makefile.am Add SPDX copyright headers to data files 2026-03-05 19:27:18 +00:00
pre-inst-env.in doc: generate man pages in section subdirectories 2026-01-15 18:53:08 +00:00
pyproject.toml misc: Bump minimum python3 version to 3.6 2026-05-29 00:36:10 +00:00
README.adoc misc: Bump minimum python3 version to 3.6 2026-05-29 00:36:10 +00:00

Jenkins Coverity

LTTngtools is a set of components to control LTTng tracing.

The project includes:

  • The LTTng session daemon.

  • The LTTng consumer daemon.

  • The LTTng relay daemon.

  • liblttngctl, a library with a C API used to communicate with the session daemon.

  • Python 3 bindings of liblttngctl.

  • lttng, a command-line tool over liblttngctl.

  • lttngcrash, a command-line tool to recover and view LTTng 2 trace buffers in the event of a crash.

Required and optional dependencies

You need the following dependencies to build and run the LTTngtools components:

  • Linux kernel ≥ 4.4.0

  • Userspace RCU ≥ 0.14.0.

    Debian/Ubuntu package: liburcudev.

  • popt ≥ 1.13

    Debian/Ubuntu package: libpoptdev.

  • Libxml2 ≥ 2.7.6

    Debian/Ubuntu package: libxml2dev

The following dependencies are optional:

  • Babeltrace ≥ 2.1: default viewer of the lttng view command, make check and tests.

    Debian/Ubuntu package: babeltrace2 libbabeltrace2-dev

  • LTTngUST (same minor version as LTTngtools): LTTng user space tracing (applications and libraries).

    Debian/Ubuntu package: liblttngustdev

  • Python ≥ 3.6: make check and tests.

    Debian/Ubuntu package: python3

  • SWIG ≥ 2.0 and Python 3 development headers: Python bindings (enabled at build configuration time with the enablepythonbindings option).

    Debian/Ubuntu packages: swig2.0 and python3dev

  • modprobe and/or kmod ≥ 22: automatic LTTng kernel modules loading (kernel tracing).

  • Bash: make check.

  • man (manual pager): view lttng command manual pages with the help option or with the lttng help command.

    Note
    You can use the build configuration option enableembeddedhelp to embed the manual pages into the lttng, lttngsessiond, lttngrelayd, and lttngcrash programs so that you dont need man to view them.
  • libpfm ≥ 4.0: perf regression test suite.

    Debian/Ubuntu package: libpfm4-dev

  • xxd: make check and certain tests.

    Debian/Ubuntu package: xxd

  • lcov: make check-code-coverage

    Debian/Ubuntu package: lcov

LTTngtools supports both the LTTng Linux kernel tracer and LTTng user space tracer sharing the same minor version. While some minor releases do not change the tracer ABIs and could work, no testing is performed to ensure that cross-version compatibility is maintained.

You dont need to rebuild or modify applications instrumented with older versions of the LTTngUST project to make them work with the components of the latest LTTngtools release.

See the LTTng Documentation for more information on versioning.

Build from source

Dependencies

You need the following tools to build LTTngtools:

To build the LTTngtools manual pages:

  • AsciiDoc ≥ 8.4.5

    Note
    Previous versions could work, but were not tested.
  • xmlto ≥ 0.0.21

    Note
    Previous versions could work, but were not tested.

If you use GNU gold, which is not mandatory:

  • GNU gold ≥ 2.22

Note
With GNU gold, you might need to add -L/usr/local/lib to the LDFLAGS environment variable.

Build steps

  1. If you have the LTTngtools Git source, run:

    $ ./bootstrap

    This script creates the configure script.

  2. Configure the build:

    $ ./configure

    If you want the liblttngctl Python bindings, use the enablepythonbindings option. See also the PYTHON and PYTHON_CONFIG environment variables in ./configure help.

    If you dont want to build the manual pages, use the disablemanpages option.

    If you want to embed the manual pages into the lttng, lttngsessiond, lttngrelayd, and lttngcrash programs so that you dont need man to view them, use the enableembeddedhelp option.

    This build configuration script finds LTTngUST with pkgconfig: set the PKG_CONFIG_PATH environment variable accordingly if pkgconfig cannot find the lttngust package information.

    See ./configure help for the complete list of options.

  3. Build the project:

    $ make
  4. Install the project:

    $ sudo make install
    $ sudo ldconfig

Tests

To run all the tests:

$ make check

Usage

See the Tracing control section of the LTTng Documentation to learn how to use the LTTngtools components.

See also the LTTng manual pages (all section 1 and 8 pages).

As theres no official liblttngctl Python bindings yet, see doc/python-howto.txt to understand how to use them.

Supported versions

The LTTng project supports the last two released stable versions (e.g. stable-2.13 and stable-2.12).

Fixes are backported from the master branch to the last stable version unless those fixes would break the ABI or API. Those fixes may be backported to the second-last stable version, depending on complexity and ABI/API compatibility.

Security fixes are backported from the master branch to both of the last stable version and the second-last stable version.

New features are integrated into the master branch and not backported to the last stable branch.

Community

Mailing list

lttng-dev (lttng-dev@lists.lttng.org)

IRC channel

#lttng on the OFTC network

Mastodon

lttng

Bug tracker

LTTngtools bug tracker

GitHub project

lttng/lttngtools

Continuous integration

LTTngtoolss master build on LTTngs CI

Code review

lttngtools project on LTTng Review

Contributors guide

https://github.com/lttng/lttng-tools/blob/master/CONTRIBUTING.md