33 lines
1007 B
Diff
33 lines
1007 B
Diff
diff --git a/servconf.c b/servconf.c
|
|
index e16f9e90fc71..a3779a9d86ee 100644
|
|
--- a/servconf.c
|
|
+++ b/servconf.c
|
|
@@ -1942,13 +1942,22 @@ process_server_config_line_depth(ServerOptions *options, char *line,
|
|
fatal("%s line %d: %s missing argument.",
|
|
filename, linenum, keyword);
|
|
if (!*activep) {
|
|
- arg = argv_next(&ac, &av);
|
|
+ argv_consume(&ac);
|
|
+ break;
|
|
+ }
|
|
+ found = 0;
|
|
+ for (i = 0; i < options->num_subsystems; i++) {
|
|
+ if (strcmp(arg, options->subsystem_name[i]) == 0) {
|
|
+ found = 1;
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ if (found) {
|
|
+ debug("%s line %d: Subsystem '%s' already defined.",
|
|
+ filename, linenum, arg);
|
|
+ argv_consume(&ac);
|
|
break;
|
|
}
|
|
- for (i = 0; i < options->num_subsystems; i++)
|
|
- if (strcmp(arg, options->subsystem_name[i]) == 0)
|
|
- fatal("%s line %d: Subsystem '%s' "
|
|
- "already defined.", filename, linenum, arg);
|
|
options->subsystem_name[options->num_subsystems] = xstrdup(arg);
|
|
arg = argv_next(&ac, &av);
|
|
if (!arg || *arg == '\0')
|