]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: fix regression in r1.356: for ssh_config options that
authordjm@openbsd.org <djm@openbsd.org>
Tue, 8 Jun 2021 22:06:12 +0000 (22:06 +0000)
committerDamien Miller <djm@mindrot.org>
Tue, 8 Jun 2021 22:32:03 +0000 (08:32 +1000)
accepted multiple string arguments, ssh was only recording the first.
Reported by Lucas via bugs@

OpenBSD-Commit-ID: 7cbf182f7449bf1cb7c5b4452667dc2b41170d6d

readconf.c

index 842bbcd97538a557be695ca5340a90fc71bf819d..22e69cb332a07b26a295196210fc0fd3de06ae8c 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.356 2021/06/08 07:07:15 djm Exp $ */
+/* $OpenBSD: readconf.c,v 1.357 2021/06/08 22:06:12 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1243,6 +1243,7 @@ parse_string:
                max_entries = SSH_MAX_HOSTS_FILES;
 parse_char_array:
                i = 0;
+               value = *uintptr == 0; /* was array empty when we started? */
                while ((arg = argv_next(&ac, &av)) != NULL) {
                        if (*arg == '\0') {
                                error("%s line %d: keyword %s empty argument",
@@ -1259,7 +1260,7 @@ parse_char_array:
                                }
                        }
                        i++;
-                       if (*activep && *uintptr == 0) {
+                       if (*activep && value) {
                                if ((*uintptr) >= max_entries) {
                                        error("%s line %d: too many %s "
                                            "entries.", filename, linenum,