summaryrefslogtreecommitdiff
path: root/usr/src/common/cmdparse/cmdparse.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/common/cmdparse/cmdparse.c')
-rw-r--r--usr/src/common/cmdparse/cmdparse.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/common/cmdparse/cmdparse.c b/usr/src/common/cmdparse/cmdparse.c
index a773311033..7a9e575d71 100644
--- a/usr/src/common/cmdparse/cmdparse.c
+++ b/usr/src/common/cmdparse/cmdparse.c
@@ -536,7 +536,16 @@ cmdParse(int argc, char *argv[], synTables_t synTable, void *callArgs,
switch (opt) {
case '?':
subUsage(DETAIL_USAGE, subcommand);
- exit(0);
+ /*
+ * getopt can return a '?' when no
+ * option letters match string. Check for
+ * the 'real' '?' in optopt.
+ */
+ if (optopt == '?') {
+ exit(0);
+ } else {
+ exit(1);
+ }
default:
cmdOptions[i].optval = opt;
if (optarg) {