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>
Tue, 11 May 2021 17:30:14 +0000 (13:30 -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: I1c12285fd0f42bb73c560a32a56cab03f1a5a6e1

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

index b28656ee19be5fb8e70d4f372e147fea05d2419b..2765b32cf1e5a403e975fb645e3d9dcb690ce461 100644 (file)
@@ -376,7 +376,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.026532 seconds and 4 git commands to generate.