diff options
author | djm@openbsd.org <djm@openbsd.org> | 2023-09-06 23:21:36 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2023-09-07 09:54:00 +1000 |
commit | 52dfe3c72d98503d8b7c6f64fc7e19d685636c0b (patch) | |
tree | cb6307b08fb5da4502875fbf628c3d4d77f4560e | |
parent | 1ee0a16e07b6f0847ff463d7b5221c4bf1876e25 (diff) |
upstream: downgrade duplicate Subsystem directives from being a
fatal error to being a debug message to match behaviour with just about all
other directives.
OpenBSD-Commit-ID: fc90ed2cc0c18d4eb8e33d2c5e98d25f282588ce
-rw-r--r-- | servconf.c | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.397 2023/08/29 02:50:10 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.398 2023/09/06 23:21:36 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * All rights reserved @@ -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') |