projects
/
deliverable
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Backport: trackers: commands: validate duplicate options
[deliverable/lttng-tools.git]
/
src
/
bin
/
lttng
/
commands
/
track-untrack.c
diff --git
a/src/bin/lttng/commands/track-untrack.c
b/src/bin/lttng/commands/track-untrack.c
index c860346f75a37df35309077e5fb6a9276e6c4861..00da87617b762c7965c0d325d0118c7e9a94aa81 100644
(file)
--- 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:
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:
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:
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:
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:
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:
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;
opt_vgid.used = 1;
type_state = STATE_VGID;
break;
This page took
0.028314 seconds
and
5
git commands to generate.