summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2017-02-03 05:05:57 +0000
committerDamien Miller <djm@cvs.openbsd.org>2017-02-03 05:05:57 +0000
commit031a81f94351a95937ad52c6b8156feb0d9bd5c7 (patch)
treec259d7025a05ab2580eeef61fd0581c52b0fe63c
parentb1def41df1cb29ffeb146196e2a703b327fb896f (diff)
allow form-feed characters at EOL; bz#2431 ok dtucker@
-rw-r--r--usr.bin/ssh/readconf.c6
-rw-r--r--usr.bin/ssh/servconf.c11
2 files changed, 13 insertions, 4 deletions
diff --git a/usr.bin/ssh/readconf.c b/usr.bin/ssh/readconf.c
index bccd0f3a5dc..e8f63e381e3 100644
--- a/usr.bin/ssh/readconf.c
+++ b/usr.bin/ssh/readconf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.266 2017/01/30 00:38:50 djm Exp $ */
+/* $OpenBSD: readconf.c,v 1.267 2017/02/03 05:05:56 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -827,11 +827,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host,
activep = &cmdline;
}
- /* Strip trailing whitespace */
+ /* Strip trailing whitespace. Allow \f (form feed) at EOL only */
if ((len = strlen(line)) == 0)
return 0;
for (len--; len > 0; len--) {
- if (strchr(WHITESPACE, line[len]) == NULL)
+ if (strchr(WHITESPACE "\f", line[len]) == NULL)
break;
line[len] = '\0';
}
diff --git a/usr.bin/ssh/servconf.c b/usr.bin/ssh/servconf.c
index 6412de7d9da..08e66a98690 100644
--- a/usr.bin/ssh/servconf.c
+++ b/usr.bin/ssh/servconf.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: servconf.c,v 1.302 2017/01/06 03:45:41 djm Exp $ */
+/* $OpenBSD: servconf.c,v 1.303 2017/02/03 05:05:56 djm Exp $ */
/*
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
* All rights reserved
@@ -920,6 +920,15 @@ process_server_config_line(ServerOptions *options, char *line,
long long val64;
const struct multistate *multistate_ptr;
+ /* Strip trailing whitespace. Allow \f (form feed) at EOL only */
+ if ((len = strlen(line)) == 0)
+ return 0;
+ for (len--; len > 0; len--) {
+ if (strchr(WHITESPACE "\f", line[len]) == NULL)
+ break;
+ line[len] = '\0';
+ }
+
cp = line;
if ((arg = strdelim(&cp)) == NULL)
return 0;