]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: Ignore comments at the end of config lines in ssh_config,
authordtucker@openbsd.org <dtucker@openbsd.org>
Mon, 30 Nov 2020 05:36:39 +0000 (05:36 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 4 Dec 2020 02:42:38 +0000 (13:42 +1100)
similar to what we already do for sshd_config.  bz#2320, with & ok djm@

OpenBSD-Commit-ID: bdbf9fc5bc72b1a14266f5f61723ed57307a6db4

readconf.c

index 09b5e086a114adb00030c746c781c81f62a51a24..d60eeacfdb7be69be92031232f8b18be13fa942f 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.342 2020/11/15 22:34:58 djm Exp $ */
+/* $OpenBSD: readconf.c,v 1.343 2020/11/30 05:36:39 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1899,7 +1899,7 @@ read_config_file_depth(const char *filename, struct passwd *pw,
     int flags, int *activep, int *want_final_pass, int depth)
 {
        FILE *f;
-       char *line = NULL;
+       char *cp, *line = NULL;
        size_t linesize = 0;
        int linenum;
        int bad_options = 0;
@@ -1930,6 +1930,13 @@ read_config_file_depth(const char *filename, struct passwd *pw,
        while (getline(&line, &linesize, f) != -1) {
                /* Update line number counter. */
                linenum++;
+               /*
+                * Trim out comments and strip whitespace.
+                * NB - preserve newlines, they are needed to reproduce
+                * line numbers later for error messages.
+                */
+               if ((cp = strchr(line, '#')) != NULL)
+                       *cp = '\0';
                if (process_config_line_depth(options, pw, host, original_host,
                    line, filename, linenum, activep, flags, want_final_pass,
                    depth) != 0)