fix regression in r1.356: for ssh_config options that accepted
authordjm <djm@openbsd.org>
Tue, 8 Jun 2021 22:06:12 +0000 (22:06 +0000)
committerdjm <djm@openbsd.org>
Tue, 8 Jun 2021 22:06:12 +0000 (22:06 +0000)
multiple string arguments, ssh was only recording the first.
Reported by Lucas via bugs@

usr.bin/ssh/readconf.c

index c68c26a..44c94d7 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
@@ -1229,6 +1229,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",
@@ -1245,7 +1246,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,