[lttng-dev] [lttng-ust RFC v3] Add setuid wrappers for per-UID buffers
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Tue May 28 10:02:43 EDT 2019
----- On May 27, 2019, at 5:51 PM, Gabriel-Andrew Pollo-Guilbert gabriel.pollo-guilbert at efficios.com wrote:
> In case of a per-UID buffer, events following a change of user ID should be
> forwarded to buffers of the new UID. In order to do so, we add a wrapper around
> setuid(3), setreuid(3) and setresuid(2) that unregister and re-register the
> application from the session daemon.
>
> While there exist some other functions such as seteuid(3) or setfsuid(2), we
> don't need to add a wrapper for them since they do not edit the real user ID,
> the actual ID returned by getuid(3) and used for creating the buffers.
The general approach looks good.
The missing part is adding tests within lttng-tools "destructive" tests (because
they will likely change the system configuration to add users (?)).
One nit below since we are here...
> diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c
> index 61dbb41b..0d0b9eb4 100644
> --- a/liblttng-ust/lttng-ust-comm.c
> +++ b/liblttng-ust/lttng-ust-comm.c
> @@ -225,10 +225,12 @@ void ust_unlock(void)
> * daemon problems).
> */
> static sem_t constructor_wait;
> +
> /*
> * Doing this for both the global and local sessiond.
> */
> -static int sem_count = { 2 };
> +#define LTTNG_UST_INIT_SEM_COUNT 2
I know I'm the one who asked for a #define, but in general, it's better
to use:
enum { LTTNG_UST_INIT_SEM_COUNT = 2 };
So we do not pollute the preprocessor namespace (e.g. output of gcc -dM -E file.c).
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list