Fix: lttng-ctl: erroneous check if user is part of the tracing group
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 3 May 2021 16:50:25 +0000 (12:50 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 3 May 2021 18:28:41 +0000 (14:28 -0400)
in_tgroup is set to `-1` whenever the current user is not part of the
tracing group _or_ if an error occurred while looking up if the user
is part of the tracing group. In other words, the value '0' is unused.

in_tgroup must be explicitly checked against '1' and can't be assumed
to behave as a boolean value.

This is _not_ a security issue: if the user is not part of the tracing
group, she will fail to open the root session damon's socket because
of the kernel-side permission checking. However, the behaviour of the
lttng client (and error reporting) will be confusing.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I614da0123d0546c5f54f121e8ed9716d6e292400

src/lib/lttng-ctl/lttng-ctl.c

index 7a38699d9c8438cbedd423a12fd2204884dc266f..d9805e22288f44b7dc2df548fd1e21c18482b3ad 100644 (file)
@@ -388,7 +388,7 @@ static int set_session_daemon_path(void)
                in_tgroup = lttng_check_tracing_group();
        }
 
-       if ((uid == 0) || in_tgroup) {
+       if ((uid == 0) || in_tgroup == 1) {
                const int ret = lttng_strncpy(sessiond_sock_path,
                                DEFAULT_GLOBAL_CLIENT_UNIX_SOCK,
                                sizeof(sessiond_sock_path));
This page took 0.02621 seconds and 4 git commands to generate.