diff options
author | djm@openbsd.org <djm@openbsd.org> | 2017-10-04 18:49:30 +0000 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2017-10-07 13:41:59 +0100 |
commit | e293f21da513a7db59fe1997c9e90e2e9cdbceda (patch) | |
tree | fd3abca80474e480adeb28d905400dc3bfd5f6fd | |
parent | 801a62eedaaf47b20dbf4b426dc3e084bf0c8d49 (diff) |
Fix PermitOpen argument handling
fix (another) problem in PermitOpen introduced during the
channels.c refactor: the third and subsequent arguments to PermitOpen were
being silently ignored; ok markus@
Upstream-ID: 067c89f1f53cbc381628012ba776d6861e6782fd
Origin: https://anongit.mindrot.org/openssh.git/commit/?id=7c9613fac3371cf65fb07739212cdd1ebf6575da
Last-Update: 2017-10-07
Patch-Name: permitopen-argument-handling.patch
-rw-r--r-- | servconf.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/servconf.c b/servconf.c index 5e996cf8f..9daa182c0 100644 --- a/servconf.c +++ b/servconf.c | |||
@@ -1,5 +1,5 @@ | |||
1 | 1 | ||
2 | /* $OpenBSD: servconf.c,v 1.312 2017/10/02 19:33:20 djm Exp $ */ | 2 | /* $OpenBSD: servconf.c,v 1.313 2017/10/04 18:49:30 djm Exp $ */ |
3 | /* | 3 | /* |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
5 | * All rights reserved | 5 | * All rights reserved |
@@ -1690,9 +1690,9 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1690 | if (!arg || *arg == '\0') | 1690 | if (!arg || *arg == '\0') |
1691 | fatal("%s line %d: missing PermitOpen specification", | 1691 | fatal("%s line %d: missing PermitOpen specification", |
1692 | filename, linenum); | 1692 | filename, linenum); |
1693 | i = options->num_permitted_opens; /* modified later */ | 1693 | value = options->num_permitted_opens; /* modified later */ |
1694 | if (strcmp(arg, "any") == 0 || strcmp(arg, "none") == 0) { | 1694 | if (strcmp(arg, "any") == 0 || strcmp(arg, "none") == 0) { |
1695 | if (*activep && i == 0) { | 1695 | if (*activep && value == 0) { |
1696 | options->num_permitted_opens = 1; | 1696 | options->num_permitted_opens = 1; |
1697 | options->permitted_opens = xcalloc(1, | 1697 | options->permitted_opens = xcalloc(1, |
1698 | sizeof(*options->permitted_opens)); | 1698 | sizeof(*options->permitted_opens)); |
@@ -1710,7 +1710,7 @@ process_server_config_line(ServerOptions *options, char *line, | |||
1710 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) | 1710 | if (arg == NULL || ((port = permitopen_port(arg)) < 0)) |
1711 | fatal("%s line %d: bad port number in " | 1711 | fatal("%s line %d: bad port number in " |
1712 | "PermitOpen", filename, linenum); | 1712 | "PermitOpen", filename, linenum); |
1713 | if (*activep && i == 0) { | 1713 | if (*activep && value == 0) { |
1714 | options->permitted_opens = xrecallocarray( | 1714 | options->permitted_opens = xrecallocarray( |
1715 | options->permitted_opens, | 1715 | options->permitted_opens, |
1716 | options->num_permitted_opens, | 1716 | options->num_permitted_opens, |