Commit 9b4bbbbccf for strongswan.org
commit 9b4bbbbccfec26bcfa38d80ba24dcb17ce5c59bc
Author: Tobias Brunner <tobias@strongswan.org>
Date: Mon Feb 23 11:13:55 2026 +0100
swanctl: Check for conflicts with shared options when registering commands
Also suppress errors when pre-processing shared options (this was missing
here but already used in pki).
diff --git a/src/swanctl/command.c b/src/swanctl/command.c
index 35a226a747..dd662eef08 100644
--- a/src/swanctl/command.c
+++ b/src/swanctl/command.c
@@ -185,6 +185,8 @@ static bool process_common_opts(bool init)
int prevoptind = optind;
bool success = TRUE;
+ /* don't report any errors during this pre-processing */
+ opterr = 0;
while (TRUE)
{
switch (getopt_long(argc, argv, command_optstring, command_opts, NULL))
@@ -243,6 +245,16 @@ void command_register(command_t command)
return;
}
}
+ for (i = 0; i < countof(shared_options); i++)
+ {
+ if (shared_options[i].op == command.op)
+ {
+ fprintf(stderr, "unable to register command --%s, short option "
+ "-%c conflicts with --%s\n", command.cmd, command.op,
+ shared_options[i].name);
+ return;
+ }
+ }
cmds[registered] = command;
/* append default options, but not to --help */