From c89e459cc70ad9902a2ef78d9f995de966483302 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 5 Jul 2018 10:50:18 -0400 Subject: [PATCH] Backport: trackers: commands: validate duplicate options Signed-off-by: Mathieu Desnoyers --- src/bin/lttng/commands/track-untrack.c | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/bin/lttng/commands/track-untrack.c b/src/bin/lttng/commands/track-untrack.c index c860346f7..00da87617 100644 --- a/src/bin/lttng/commands/track-untrack.c +++ b/src/bin/lttng/commands/track-untrack.c @@ -518,26 +518,56 @@ int cmd_track_untrack(enum cmd_type cmd_type, const char *cmd_str, case OPT_SESSION: break; case OPT_PID: + if (opt_pid.used) { + ERR("Duplicate --pid option is forbidden.\n"); + command_ret = CMD_ERROR; + goto end; + } opt_pid.used = 1; type_state = STATE_PID; break; case OPT_VPID: + if (opt_vpid.used) { + ERR("Duplicate --vpid option is forbidden.\n"); + command_ret = CMD_ERROR; + goto end; + } opt_vpid.used = 1; type_state = STATE_VPID; break; case OPT_UID: + if (opt_uid.used) { + ERR("Duplicate --uid option is forbidden.\n"); + command_ret = CMD_ERROR; + goto end; + } opt_uid.used = 1; type_state = STATE_UID; break; case OPT_VUID: + if (opt_vuid.used) { + ERR("Duplicate --vuid option is forbidden.\n"); + command_ret = CMD_ERROR; + goto end; + } opt_vuid.used = 1; type_state = STATE_VUID; break; case OPT_GID: + if (opt_gid.used) { + ERR("Duplicate --gid option is forbidden.\n"); + command_ret = CMD_ERROR; + goto end; + } opt_gid.used = 1; type_state = STATE_GID; break; case OPT_VGID: + if (opt_vgid.used) { + ERR("Duplicate --vgid option is forbidden.\n"); + command_ret = CMD_ERROR; + goto end; + } opt_vgid.used = 1; type_state = STATE_VGID; break; -- 2.34.1