diff --git a/contrib/chg/chg.c b/contrib/chg/chg.c --- a/contrib/chg/chg.c +++ b/contrib/chg/chg.c @@ -372,14 +372,21 @@ TIME = 4, }; unsigned int state = 0; - int i; - for (i = 0; i < argc; ++i) { + int i = 0; + + if (argc > 0) { + const char *const firstarg = argv[i]; + if (strcmp("serve", firstarg) == 0) { + state |= SERVE; + ++i; + } + } + + for (; i < argc; ++i) { if (strcmp(argv[i], "--") == 0) break; - if (i == 0 && strcmp("serve", argv[i]) == 0) - state |= SERVE; - else if (strcmp("-d", argv[i]) == 0 || - strcmp("--daemon", argv[i]) == 0) + if (strcmp("-d", argv[i]) == 0 || + strcmp("--daemon", argv[i]) == 0) state |= DAEMON; else if (strcmp("--time", argv[i]) == 0) state |= TIME;