summaryrefslogtreecommitdiff
path: root/servconf.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2019-12-15 20:57:15 +0000
committerDamien Miller <djm@mindrot.org>2019-12-16 14:19:41 +1100
commit747e25192f436e71dd39e15d65aa32bca967533a (patch)
tree03c318c92e4734af4ea29a40519986e566b48964 /servconf.c
parent9b6e30b96b094ad787511a5b989253e3b8fe1789 (diff)
downloadopenssh-git-747e25192f436e71dd39e15d65aa32bca967533a.tar.gz
upstream: do not attempt to find an absolute path for sshd_config
SecurityKeyProvider=internal - unbreaks cfgparse regress test OpenBSD-Commit-ID: d2ddcf525c0dc3c8339522360c10b3c70f1fd641
Diffstat (limited to 'servconf.c')
-rw-r--r--servconf.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/servconf.c b/servconf.c
index 30cd5984..9fe02d7e 100644
--- a/servconf.c
+++ b/servconf.c
@@ -1,5 +1,5 @@
-/* $OpenBSD: servconf.c,v 1.355 2019/12/15 18:57:30 djm Exp $ */
+/* $OpenBSD: servconf.c,v 1.356 2019/12/15 20:57:15 djm Exp $ */
/*
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
* All rights reserved
@@ -2032,7 +2032,18 @@ process_server_config_line(ServerOptions *options, char *line,
case sSecurityKeyProvider:
charptr = &options->sk_provider;
- goto parse_filename;
+ arg = strdelim(&cp);
+ if (!arg || *arg == '\0')
+ fatal("%s line %d: missing file name.",
+ filename, linenum);
+ if (*activep && *charptr == NULL) {
+ *charptr = strcasecmp(arg, "internal") == 0 ?
+ xstrdup(arg) : derelativise_path(arg);
+ /* increase optional counter */
+ if (intptr != NULL)
+ *intptr = *intptr + 1;
+ }
+ break;
case sIPQoS:
arg = strdelim(&cp);